我已经为这个错误苦苦挣扎了两天。但我不知道发生了什么。
使用 phpMailer 和 gmail 帐户一切正常。由于 gmail 有每日发送限制,我们想改用 sparkPost。然后,当我们将用户更改为 sparkPost 时,我们注意到一些电子邮件失败了。
我们有这个 phpmailer 代码:
$mail = new PHPMailer();
$mail->SMTPDebug = 1;
$mail->isSMTP();
$mail->Host = 'smtp.sparkpostmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->IsHTML(true);
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
$mail->Username = ''; //Sparkpost user
$mail->Password = ''; //Sparkpost pass
$mail->setFrom($from, 'From Alias');
$mail->addAddress($recipient);
$mail->Subject = html_entity_decode( $subject , ENT_QUOTES, 'UTF-8') ;
$mail->Body = $body;
$send = $mail->Send();
if (!$send) {
$loginfo .= "Mailer Error: " . $mail->ErrorInfo . "\n";
//Sends an email when the error ocurrs
} else {
$loginfo .= "Mail has been sent";
//OK
}
我在 setFrom() 中尝试了 3 个不同的电子邮件地址,但它们都至少失败了一次。我这样说是因为并不总是失败。例如,使用我尝试的最后一个地址,我们发送了 21 封电子邮件,其中只有 2 封因此错误而失败。
编辑这是我通过 SMTPDebug = 2 获得的信息:
SMTP 错误:不接受数据。
SMTP 服务器错误:2.0.0 RCPT TO 已接受
DebugInfo: SMTP -> FROM SERVER:220 2.0.0 smtp.sparkpostmail.com ESMTP ecelerity 4.2.27.58261 r(Core:4.2.27.6) Wed, 11 Jan 2017 12:07:04 +0000
SMTP -> 从服务器:250-momentum5.platform1.us-west-2.aws.cl.messagesystems.com 说 EHLO 到 54.154.106.22:35238 250-8BITMIME 250-STARTTLS 250-AUTH=LOGIN PLAIN 250-AUTH LOGIN PLAIN 250-流水线 250 增强状态代码
SMTP -> FROM SERVER:220 2.0.0 继续
SMTP -> 从服务器:250-momentum5.platform1.us-west-2.aws.cl.messagesystems.com 说 EHLO 到 54.154.106.22:35238 250-8BITMIME 250-AUTH=LOGIN PLAIN 250-AUTH LOGIN PLAIN 250-PIPELINING 250 个增强状态代码
SMTP -> 错误:服务器不接受密码:
SMTP -> FROM SERVER:235 2.0.0 Authed。继续。
SMTP -> 错误:RSET 失败:235 2.0.0 已验证。继续。
SMTP -> FROM SERVER:250 2.0.0 RSET OK
SMTP -> FROM SERVER:250 2.0.0 MAIL FROM 接受
SMTP -> FROM SERVER:250 2.0.0 RCPT TO 接受
SMTP -> 错误:服务器未接受 DATA 命令:250 2.0.0 RCPT TO 已接受
SMTP 错误:不接受数据。
任何想法?提前致谢