我们公司通过phpmailer向我们的客户发送电子邮件,某些电子邮件从未通过某些人...(.gov,.amec和其他人的电子邮件)
如果我们使用相同的电子邮件地址并在Outlook中向他们发送完全相同的电子邮件,他们就会收到它。有谁知道这个问题是什么?我被告知它可能是标题,但我不熟悉如何解决它。
这是我们的邮件代码:
Note all variables/non-logic has been replaced with {{}} for this example.
$mail = new PHPMailer();
$mail->IsMail();
$mail->SetFrom({{from address}}, {{from name}});
$mail->AddAddress({{address addition}});
$mail->WordWrap = 70;
$mail->IsHTML(true);
$mail->Subject = {{subject}};
$mail->Body = {{body}};
$mail ->AltBody = {{alt body}};
$mail->MsgHTML({{msg}});
$mail->Send();
答案 0 :(得分:1)
将$mail->IsMail();
更改为$mail->IsSendmail();
此外,如果您将$mail = new PHPMailer();
更改为$mail = new PHPMailer(true);
,则会在错误上引发异常。
第三,您不需要$mail->MsgHTML({{msg}});
行 - 只需将所有邮件放入$mail->Body = {{body}};
。
您的代码应如下所示:
$mail = new PHPMailer(true);
$mail->IsSendmail();
$mail->SetFrom('myEmail@example.com', 'MyFirst MyLast');
$mail->AddAddress('email@example.com', 'First Last');
$mail->WordWrap = 70;
$mail->IsHTML(true);
$mail->Subject = 'Example Subject';
$mail->Body = $body; // can set using ob_start(); and ob_get_contents();
$mail ->AltBody = 'Alt body message';
$mail->Send();
答案 1 :(得分:0)
您可能想要检查邮件服务器日志(phpmailer用于发送这些邮件的邮件服务器),以查看他们为这些失败的传递尝试显示的内容。日志应该说明为什么这些交付不成功。