使用Zend_Mail通过Exchange Server发送SMTP电子邮件 - 如何诊断这些错误

时间:2010-10-12 20:09:08

标签: zend-framework smtp exchange-server zend-mail

我有以下代码:

$config = array(
   'auth' => 'login',
   'username' => 'domain\user',
   'password' => 'password',
   'ssl' => 'tls',
   'port' => 25,
);

$tr = new Zend_Mail_Transport_Smtp('192.168.101.11',$config);
Zend_Mail::setDefaultTransport($tr);

$mail = new Zend_Mail();
$mail->setBodyText($text);
$mail->setFrom('noreply@domain.com');
$mail->addTo($user->getEmail());
$mail->setSubject('Email subject');
$mail->send();

当我尝试使用正确的凭据连接时,我在日志中收到以下错误:

2010-10-12T13:00:59-07:00 ERR (3): AdminController::emailPassword - 5.7.1
2010-10-12T13:00:59-07:00 ERR (3): AdminController::emailPassword - #0 /usr/share/php/Zend/Mail/Protocol/Smtp.php(261): Zend_Mail_Protocol_Abstract->_expect(250, 300)
        #1 /usr/share/php/Zend/Mail/Transport/Smtp.php(207): Zend_Mail_Protocol_Smtp->mail('noreply@domain...')
        #2 /usr/share/php/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail()
        #3 /usr/share/php/Zend/Mail.php(1178): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
...

当我尝试连接并使用绝对错误的密码发送电子邮件时,我收到以下错误:

2010-10-12T13:03:52-07:00 ERR (3): AdminController::emailPassword - 5.7.3
2010-10-12T13:03:52-07:00 ERR (3): AdminController::emailPassword - #0 /usr/share/php/Zend/Mail/Protocol/Smtp/Auth/Login.php(95): Zend_Mail_Protocol_Abstract->_expect(235)
#1 /usr/share/php/Zend/Mail/Protocol/Smtp.php(217): Zend_Mail_Protocol_Smtp_Auth_Login->auth()
#2 /usr/share/php/Zend/Mail/Transport/Smtp.php(200): Zend_Mail_Protocol_Smtp->helo('localhost')
#3 /usr/share/php/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail()
#4 /usr/share/php/Zend/Mail.php(1178): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
#5 /var/www/mreserve/application/controllers/AdminController.php(458): Zend_Mail->send()
...

我的问题,我真的不知道如何诊断这些错误。我在哪里查看描述5.7.1和5.7.3错误代码等?谷歌没有太多帮助我。当我插入个人GMail帐户的凭据时,我可以很好地发送邮件,所以我知道我可以在正确配置后发送电子邮件。

其他一些可能有用的花絮,我试图从已为该用户创建电子邮件帐户的公司发送,我正在尝试发送到域外的电子邮件,我没有太多访问交换服务器 - 除了关于他们如何设置电子邮件客户端的一些屏幕截图。

1 个答案:

答案 0 :(得分:3)

这些是Exchange服务器的NDR(非传递报告)代码。 对于2007年的交换,Here is a (rather old) blog entry describing themanother page listing the sames codes

5.7.1错误代码

“权限问题”,可能指向:

  • a SMTP relay problem。您的帐户无权向其他域发送电子邮件。
  • 发件人/收件人问题。您的帐户无权向讨论列表发送电子邮件(因为您的帐户不是其中的一员)
  • 您帐户的其他具体限制。

恕我直言,只有SMTP日志可以说明确切的原因。

5.7.3错误代码

“发件人禁止”或“未授权,安全问题”,具体取决于来源;可能与错误的密码提交一致。

希望这有帮助。