Отправка электронной почты SMTP через Exchange Server с использованием Zend_Mail - как диагностировать эти ошибки - PullRequest
2 голосов
/ 13 октября 2010

У меня есть следующий код:

$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 описаны и т. Д.? Google не слишком помог мне. Когда я подключаю учетные данные для своей личной учетной записи GMail, я могу отправлять почту очень хорошо, поэтому я знаю, что я могу отправлять электронную почту при правильной настройке.

Несколько других, возможно, полезных трюков, я пытаюсь отправить от компании Exchange, которая создала учетную запись электронной почты для этого пользователя, я пытаюсь отправить на электронную почту за пределами домена, и у меня мало доступа к серверу обмена - кроме нескольких скриншотов о том, как они настраивают свои почтовые клиенты.

1 Ответ

3 голосов
/ 13 октября 2010

Это коды отчета о недоставке для сервера Exchange. Вот (довольно старая) запись в блоге, описывающая их , и другая страница с перечислением тех же кодов для обмена 2007.

5.7.1 Код ошибки

«проблема с правами доступа», которая может указывать на:

  • a проблема ретрансляции SMTP .Ваша учетная запись не авторизована для отправки писем на другой домен.
  • проблема отправителя / получателя.Ваша учетная запись не имеет права отправлять электронные письма в список обсуждений (поскольку ваша учетная запись не является его участником)
  • другие конкретные ограничения для вашей учетной записи.

ИМХО, только журналы SMTP могут сообщить точную причину.

5.7.3 Код ошибки

«отправитель запрещен» или «Не авторизован, проблема безопасности»в зависимости от источника;может соответствовать неправильной отправке пароля.

Надеюсь, это поможет.

...