Я использую PHPmailer для отправки электронной почты.
Я также использовал HTML = True тип контента
$mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->Host = $Host; $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = $Username; $mail->Password = $Password; $mail->From = $From; $mail->FromName = $FromName; $mail->AddAddress($To , $ToName); $mail->WordWrap = 50; // set word wrap $mail->Priority = 1; $mail->IsHTML(true); $mail->Subject = $Subject; $mail->Body = $Body;
Как только письмо отправлено, я вижу фактический HTML-код вместо содержания, пожалуйста, проверьте ниже
** Не уверен, в чем проблема **
Вызов isHTML()
после того, как свойство Body
(я имею в виду $mail->Body
) было установлено, решило проблему для меня:
$mail->Subject = $Subject; $mail->Body = $Body; $mail->IsHTML(true); // <=== call IsHTML() after $mail->Body has been set.
// Извините, мой начинающий английский
Существует метод msgHTML (), который также вызывает вызов IsHTML ().
Hrm … имя IsHTML
запутанно …
/** * Create a message from an HTML string. * Automatically makes modifications for inline images and backgrounds * and creates a plain-text version by converting the HTML. * Overwrites any existing values in $this->Body and $this->AltBody * @access public * @param string $message HTML message string * @param string $basedir baseline directory for path * @param bool $advanced Whether to use the advanced HTML to text converter * @return string $message */ public function msgHTML($message, $basedir = '', $advanced = false)
или если у вас все еще есть проблемы, вы можете использовать это
$mail->Body = html_entity_decode($Body);
В версии 5.2.7 я использую это для отправки обычного текста: $mail->set('Body', $Body);
просто вам нужно передать true как аргумент функции IsHTML ().
сделайте так: вставьте свой html-код в свой отдельный файл html с помощью метода GET.
$mail->IsHTML(true); $mail->WordWrap = 70; $mail->addAttachment= $_GET['addattachment']; $mail->AltBody =$_GET['AltBody']; $mail->Subject = $_GET['subject']; $mail->Body = $_GET['body'];
все, что вам нужно сделать, это просто добавить $ mail-> IsHTML (true); к коду он отлично работает ..
Что чуть не убило меня, я определил $ mail-> AltBody. После этого все работало