У меня проблема, и я действительно в отчаянии. Вот ситуация:Как правильно использовать phpmailer в сочетании с html-email-template в codeigniter?
Я хочу отправить рассылку html электронной почты через codeigniter. Это мой контроллер:
if (! defined('BASEPATH')) exit('No direct script access allowed');
class mail extends CI_Controller {
function __construct(){
parent::__construct();
}
function send_email() {
$this->load->view('mail_form');
$this->load->library('phpmailer');
$this->load->helper('url');
if(isset($_POST['btnsend'])) {
$mail = new PHPMailer(); // defaults to using php "mail()"
$mail->CharSet="UTF-8";
$path=base_url() . 'assets/mail.html';
$body=file_get_contents($path);
$mail->SetFrom('[email protected]','blabla.com');
address = $_POST['email'];
$mail->AddAddress($address, "Guest");
$mail->Subject = "bla";
$mail->MsgHTML($body);
$mail->AddEmbeddedImage('logo.jpg', 'logo', 'logo.jpg','base64','image/jpeg');
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "A test email sent to your email address '".$_POST['email']."' Please Check Email and Spam too.";
}
}
}
}
библиотека P.S.:The PHPMailer должен быть загружен первым. В этом скрипте есть другой индекс функции, который загружает представление.
Это моя точка зрения, где вы можете оставить свой почтовый адрес, так что вы будете получать новости:
<html>
<head>
<title>Send Email</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="<?php echo base_url('index.php/mail/send_email'); ?>">
<table width="461" height="138" border="1">
<tr>
<td width="141">Enter Your Email Here</td>
<td width="187">
<input name="email" id="email" type="text" />
<input type="submit" name="btnsend" id="btnsend" value="Send Email" /></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
</table>
</form>
</body>
</html>
Шаблон HTML-почты состоит из нескольких переплетенных таблиц. Шаблон отображается отлично при открытии в браузере. Но при отправке по почте он получает клочок. Отформатированный файл хорошо отображается в почтовом клиенте. Изображение логотипа и специальные символы отображаются правильно, но по почте отображается «< meta http-equiv =« Content-Type »content =« text/html; charset = utf-8 ">" в качестве текста (НЕ html-код) перед запуском содержимого . Некоторый контент отсутствует, а некоторые конечные теги ("") удваиваются, хотя в исходном html-файле все правильно.
Итак, где ошибка? Является ли файл_get_contents() - метод неправильным для анализа html-документов? Я уже пытался использовать другой метод с «file_get_html простого html dom (http://simplehtmldom.sourceforge.net/), но не смог запустить эту библиотеку в кодеигниторе. Я боюсь, что я не могу разместить шаблон HTML html, потому что слишком длинный, и контент содержит чувствительные . информация Но я не думаю, что ошибка в HTML файл кто-нибудь имеет наконечник, некоторые ссылки или знает, как этот сценарий может работать
PS:.?! Извините за мой плохой английский
с уважением