Библиотека электронной почты Codeigniter, отправляющая пустые электронные письма или HTML-код

У меня никогда не было проблем с отправкой электронных писем через CodeIgniter, но вдруг это проблема моего последнего проекта.

Я использую это инструмент почтового сервера отправлять почту на мой локальный хост, который никогда не доставлял мне никаких проблем, а затем — библиотеку электронной почты CodeIgniter.

Я могу получить один из 2 результатов: Либо электронное письмо отправляется, но отображается весь необработанный исходный код HTML, либо электронное письмо отправляет и имеет строку темы, но все тело пусто.

Это мое email_helper.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');

function send_email($to, $subject, $template)
{
$ci = &get_instance();
$ci->load->library('email');

$config = array(
'mailtype'  => 'html',
'newline' => '\r\n',
'crlf'  => '\r\n'
);

//If I comment out this line, it sends raw HTML, otherwise it sends a blank body.
$ci->email->initialize($config);

$ci->email->from($ci->config->item('from_email_address'), $ci->config->item('from_email_name'));
$ci->email->reply_to($ci->config->item('from_email_address'), $ci->config->item('from_email_name'));
$ci->email->to($to);

$ci->email->subject($subject);
$ci->email->message($ci->load->view('email/' . $template . '_html', $data, TRUE));
$ci->email->send();
}

это мое test_html.php

<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body>
<div style="max-width: 800px; margin: 0; padding: 30px 0;">
TEST!
</div>
</body>
</html>

И тогда я вызываю помощника по электронной почте из моего контроллера с этим:

$this->load->helper('email_helper');
send_email($this->input->post('email'), 'Test Subject', 'test');

1

Решение

Надеюсь, что это поможет вам :

Вы пропали без вести $data там в вашем разделе просмотра нагрузки, а также попробуйте с $ci->load->library('email', $config); вместо $ci->email->initialize($config);

send_email должно быть так:

function send_email($to, $subject, $template)
{
$ci = & get_instance();

$config = array(
'mailtype'  => 'html',
'charset' => 'iso-8859-1',
'newline' => '\r\n',
'crlf'  => '\r\n'
);

$data = '';

$body = $ci->load->view('email/' . $template . '_html', $data, TRUE);
echo $body; die;

$ci->load->library('email', $config);
$ci->email->set_mailtype("html");
$ci->email->from($ci->config->item('from_email_address'), $ci->config->item('from_email_name'));
$ci->email->reply_to($ci->config->item('from_email_address'), $ci->config->item('from_email_name'));
if ($to)
{
$ci->email->to($to);

$ci->email->subject($subject);
$ci->email->message($body);
if ($ci->email->send())
{
return TRUE;
}
else
{
echo $ci->email->print_debugger();die;
}
}
}

Для большего : https://www.codeigniter.com/user_guide/libraries/email.html

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]