我们有一个电子邮件系统,通过PHPMailer格式化电子邮件。当PHPMailer发送电子邮件时,我在电子邮件客户端中打开它,它显示为文本而不是HTML。
我尝试过使用Gmail和Yahoo - 两个客户都将电子邮件显示为HTML源代码。
有人对我如何解决这个问题有任何建议吗?
注意:如果我使用Outlook附加HTML电子邮件的版本(作为文本插入),则会在上面列出的电子邮件客户端中正确发送和显示电子邮件。
提前致谢
答案 0 :(得分:1)
我认为PHPMailer没有将您的代码识别为HTML。 尝试在创建电子邮件时添加以下代码:
$mail->IsHTML(true);
修改强> 这是我正在使用并正常工作的代码示例。您可以交叉检查是否有任何差异。
$mail = new PHPMailer;
//Set email parameters
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.office365.com'; // Specify main and backup server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'example@mydomain.co.uk'; // SMTP username
$mail->Password = 'MyPassword'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mail->Port = 587;
$mail->From = $fromEmail;
$mail->FromName = self::getEmailName($email);
$mail->addAddress($email);
$mail->WordWrap = 50; // Set word wrap to 50 characters
$mail->isHTML(true); // Set email format to HTML
$mail->CharSet = "UTF-8";
答案 1 :(得分:1)
默认情况下,Phpmailer将电子邮件正文设置为纯文本。您需要通过设置$eMail->IsHTML(true);