【问题标题】:PHPMailer doesnt send email if isHTML(true)如果 isHTML(true),PHPMailer 不发送电子邮件
【发布时间】:2014-07-01 13:18:51
【问题描述】:

我刚刚开始使用 PHPMailer,但无法正确发送和呈现 HTML 电子邮件。我可以让他们很好地发送,但是当我添加 isHTML(true) 方法时,电子邮件根本不会发送。有什么我需要在 HTML 电子邮件或布局中放入不同的内容吗?

这是 html 电子邮件:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h1>This is a test email</h1>
    <p>Congratulations, {NAME}</p>
    <p>You have won {PRIZE}</p>
    <img src="{DOMAIN}assets/images/generated_barcodes/actual-000000013.png" alt="Barcode">
</body>
</html>

这是我用来发送电子邮件的一系列方法:

$this->_mail = new PHPMailer();
$this->_mail->From = FROM_EMAIL;
$this->_mail->FromName = FROM_EMAIL_NAME;
$this->_mail->addAddress($email);
$this->_mail->Subject = $subject;
$this->_mail->Body = $body;
$this->_mail->isHTML(true);

$this->_mail->send()

如果我注释掉 isHTML(true) 方法,这封电子邮件发送正常,但它显然不会呈现 HTML。

提前谢谢你!

编辑

似乎我只需要使用 $this->_mail->msgHTML($body, DOMAIN);在我的 HTML 中加载的方法。但现在我有一个新问题。电子邮件发送但不是在 AJAX 请求中。当我使用 AJAX 发布一些数据时,我需要它来发送电子邮件。

【问题讨论】:

  • Is不需要大写吗?
  • “不发送”是什么意思?有什么错误吗?也尝试设置$this-&gt;_mail-&gt;AltBody(如果我没记错的话)
  • 也许你必须在添加正文内容之前设置 isHtml 我错了stackoverflow.com/questions/11140263/…,因为 TylerH 说它可能不起作用,因为你得到的是小写字母 i 而不是大写字母 I
  • @TylerH 不是按照github上的例子,但是我试试看!
  • @TylerH 是的,你的权利,奇怪的是 github 文档如何将其写为 isHTML 而不是 IsHTML!感谢您的帮助!

标签: php html email phpmailer


【解决方案1】:

Is 应大写 $this-&gt;_mail-&gt;IsHTML(true);

【讨论】:

  • 不太清楚为什么这会有所不同 - PHP 对函数/方法名称不区分大小写。
  • 是的,对不起,我认为这不是问题所在,似乎我接受答案有点过早。好像这并没有解决我的问题。尽管确实发送了一封电子邮件,但它们似乎又停止了。
  • 使用这个好像解决了 $this->_mail->msgHTML($body, DOMAIN);
猜你喜欢
  • 2014-08-15
  • 2016-09-02
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
相关资源
最近更新 更多