【发布时间】:2014-07-16 20:55:42
【问题描述】:
我为 PHP5/6 使用 PHPMailer,我尝试让脚本女巫发送邮件并收到类似“550 No such User Here”之类的错误。
我阅读了有关 DSN 的信息,并尝试了来自 How to set DSN (Delivery Status Notification) for PHPMailer? 主题的提示,但它不起作用。 (我发现functin收件人在哪里
return $this->sendCommand(
'RCPT TO',
'RCPT TO:<' . $toaddr . '>',
array(250, 251)
);
)
我尝试更改链接
'RCPT TO:<' . $toaddr . '>',
到
'RCPT TO:<' . $toaddr . '> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822;' . $toaddr ."" .self::CRLF,
但我不工作。 我尝试通过函数 AddCustomHeader 添加它,但它也失败了。
这是我的代码:
private function send($username, $password, $from, $nameFrom, $replay, $subject, $email) {
try {
$_ = Zend_Registry::get('Zend_Translate');
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPKeepAlive = true;
$mail->Username = $username;
$mail->Password = $password;
$mail->SetFrom($from, $nameFrom);
$mail->AddReplyTo($replay, $nameFrom);
$mail->Subject = $subject;
$mail->MsgHTML($this->_content);
$mail->AddAddress($email);
// $mail->AddCustomHeader( "X-Confirm-Reading-To: development.tabi@gmail.com" );
// $mail->AddCustomHeader( "NOTIFY=SUCCESS,FAILURE ORCPT=rfc822; $email" );
// $mail->AddCustomHeader( "Disposition-Notification-To: development.tabi@gmail.com" );
// $mail->AddCustomHeader( "Return-receipt-to: development.tabi@gmail.com" );
if (!$mail->Send()) {
return array(
'status' => false,
'message' => $mail->ErrorInfo
);
} else {
return array(
'status' => true,
'message' => $_->_('__MAIL_WAS_SEND__')
);
}
} catch (Exception $e) {
return array(
'status' => false,
'message' => $e->getMessage()
);
}
catch (phpmailerException $e) {
return array(
'status' => false,
'message' => $e->getMessage()
);
}
}
结果我需要脚本,其中: 当我写真实地址时,例如 my_real_addres@gmail.com 它将被发送, 但是当我写假地址时,前 my_fake_addres_which_not_exist@gmail.com 将返回代码 550 或任何其他错误。
有没有办法做到这一点?因为我需要获取并保存所有信息。
【问题讨论】: