【问题标题】:PHPMailer html email not displaying as htmlPHPMailer html电子邮件不显示为html
【发布时间】:2018-04-22 13:06:36
【问题描述】:

我们有一个电子邮件系统,其中电子邮件通过 PHPMailer 格式化。当 PHPMailer 发送电子邮件时,我在电子邮件客户端中打开它,它显示为文本而不是 HTML。

我尝试过使用 Gmail 和 Yahoo - 两个客户端都将电子邮件显示为 HTML 源代码。

有人对我如何解决这个问题有任何建议吗?

注意:如果我使用 Outlook 附加 HTML 电子邮件的版本(以文本形式插入),则电子邮件会在上面列出的电子邮件客户端中正确发送和显示。

提前致谢

【问题讨论】:

  • 在您的配置中将编码从 text/plain 更改为 text/html
  • @shyammakwana.me 这已经在我的代码中设置了
  • 将您的代码添加到问题中。否则我们无法判断您在做什么。
  • @Synchro 这将很难添加代码,因为它由多个文件和函数组成,其中包含您不知道其值的变量。
  • 那是你的问题 - 不要让它成为我们的问题。使用您的值运行一个简单的 PHPMailer 脚本的独立测试(自述文件中的示例将执行此操作)。如果可行,您就知道问题出在您的代码中,然后由您来跟踪它;如果它不起作用 - 你有一个很好的例子可以在你的问题中发布。

标签: php html gmail phpmailer html-email


【解决方案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";

【讨论】:

  • 我的代码中已经有了这个。对不起,我应该在我的问题中添加这个
  • 在设置电子邮件正文后检查您是否正在执行此操作。要设置正文,您应该使用此行:$mail->Body = $Body;
  • 我目前有这样的@Kostas Georgiou.$mail->isHTML(true); // 设置邮件格式为 HTML $mail->Subject = $subject; $mail->正文 = $message;
  • 尝试更改顺序并使其如下:$mail->Subject = $subject; $mail->Body = $message; $mail->isHTML(true); // Set email format to HTML
  • @Kotas Georgiou 感谢您的建议,但这不起作用
【解决方案2】:

默认情况下,Phpmailer 将电子邮件的正文设置为纯文本。您需要通过设置$eMail->IsHTML(true);将正文指定为html

【讨论】:

  • 我的代码中已经有了这个。对不起,我应该在我的问题中添加这个
猜你喜欢
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
  • 2011-09-10
  • 1970-01-01
  • 2023-03-21
  • 2016-01-08
  • 2012-03-11
相关资源
最近更新 更多