PHPMailer,无法发送某些电子邮件

时间:2013-08-08 18:03:22

标签: php email phpmailer

我们公司通过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();

2 个答案:

答案 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();
  • 脚注:某些服务器/电子邮件客户端会阻止包含某些标题,域等的电子邮件 - 实际上没有办法检查所有变量,因为无论如何,某人会在某些时候没有收到你发出的每封电子邮件。像MXToolbox这样的工具可以帮助您解决一些问题。

答案 1 :(得分:0)

您可能想要检查邮件服务器日志(phpmailer用于发送这些邮件的邮件服务器),以查看他们为这些失败的传递尝试显示的内容。日志应该说明为什么这些交付不成功。