#php #zend-framework #email #smtp #send
#php #zend-framework #Адрес электронной почты #smtp #Отправить
Вопрос:
Всем доброго дня.
У меня следующая проблема:
У меня есть cron, который отправляет запрос скрипту, который отправляет некоторые письма с помощью zend mailer.
На тестовой машине это сработало без каких-либо проблем. Проблема в том, что на рабочей машине я получаю следующую ошибку:
xception 'Zend_Mail_Protocol_Exception' with message 'Connection timed out' in /var/www/html/site/include/Zend/Mail/Protocol/Abstract.php:254
Stack trace:
#0 /var/www/html/bca/include/Zend/Mail/Protocol/Smtp.php(167): Zend_Mail_Protocol_Abstract->_connect('tcp://182.19.13...')
#1 /var/www/html/bca/include/Zend/Mail/Transport/Smtp.php(199): Zend_Mail_Protocol_Smtp->connect()
#2 /var/www/html/bca/include/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail()
#3 /var/www/html/bca/include/Zend/Mail.php(1178): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
#4 /var/www/html/bca/include/DatabaseObject/Newsletter.php(249): Zend_Mail->send()
#5 /var/www/html/bca/include/Controllers/NewsletterController.php(551): DatabaseObject_Newsletter->sendEmail('', 'f04e3ae3586c39f...')
#6 /var/www/html/bca/include/Zend/Controller/Action.php(513): NewsletterController->processAction()
#7 /var/www/html/bca/include/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('processAction')
#8 /var/www/html/bca/include/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#9 /var/www/html/bca/public_html/index.php(660): Zend_Controller_Front->dispatch()
Cron, который я запускаю, является:
wget -O — -t 1https://www.site.ro/newsletter/process —нет проверки сертификата
или аналогичный,
wget -O — -t 1http://www.site.ro/newsletter/process
В первый раз, когда я получил проблему, я сказал им проверить конфигурации SMTP, но ppl. что конфигурация настаивала на том, что конфигурация в порядке. Так что … я не знаю. Похоже, что отсутствует подключение, но они по-прежнему настаивают на том, что все в порядке. Любая помощь, пожалуйста.?
Что ж… Я не знаю, что они сделали… но теперь они получают это:
exception 'Zend_Mail_Protocol_Exception' with message '5.3.3 AUTH mechanism LOGIN not available ' in /var/www/html/bca/include/Zend/Mail/Protocol/Abstract.php:408 Stack trace:
#0 /var/www/html/bca/include/Zend/Mail/Protocol/Smtp/Auth/Login.php(91): Zend_Mail_Protocol_Abstract->_expect(334)
#1 /var/www/html/bca/include/Zend/Mail/Protocol/Smtp.php(217): Zend_Mail_Protocol_Smtp_Auth_Login->auth()
#2 /var/www/html/bca/include/Zend/Mail/Transport/Smtp.php(200): Zend_Mail_Protocol_Smtp->helo('localhost')
#3 /var/www/html/bca/include/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail()
#4 /var/www/html/bca/include/Zend/Mail.php(1178): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
#5 /var/www/html/bca/include/DatabaseObject/Newsletter.php(249): Zend_Mail->send()
#6 /var/www/html/bca/include/Controllers/NewsletterController.php(551): DatabaseObject_Newsletter->sendEmail('', 'f04e3ae3586c39f...')
#7 /var/www/html/bca/include/Zend/Controller/Action.php(513): NewsletterController->processAction()
#8 /var/www/html/bca/include/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('processAction')
#9 /var/www/html/bca/include/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#10 /var/www/html/bca/public_html/index.php(660): Zend_Controller_Front->dispatch()
#11 {main}
Я предложил проверить user / pass… в 7-й раз… они все еще говорят, что все в порядке.
Комментарии:
1. И вы уже проверили, что можете подключиться к SMTP-серверу со своего рабочего сервера? Потому что именно это вызывает тайм-аут, когда вы просматриваете трассировку стека…
2. Это то, что я сказал, но у меня нет прямого доступа, а ребята, которые есть, продолжают говорить (и, поверьте мне, я спрашивал их примерно 99999 раз), что все в порядке.
3. Вы могли бы попросить их проверить журналы, и если они не видят попытки подключения с вашего сервера, то это может быть проблема, связанная с брандмауэром на вашей стороне (т. Е. сервер настроен так, чтобы не разрешать исходящие соединения для определенных — привилегированных — портов). Хотя это и должно быть сбросом и не вызывать тайм-аутов, но вы никогда не знаете:p.
4. Кстати, вы также можете проверить, связана ли проблема с их стороны, используя другой SMTP-сервер… Потому что, если это сработает, это обязательно будет проблемой с их стороны.
5. Я отправил их по почте … также я попросил логи, но … это займет некоторое время.
Ответ №1:
Я хотел бы убедиться, что с вашего рабочего сервера можно связаться с SMTP, выполнив следующее из командной строки на сервере:
$ telnet 1.2.3.4 25
Где 1.2.3.4 — это IP-адрес или имя хоста SMTP-сервера, к которому вы пытаетесь подключиться. Из исключения похоже, что этот адрес начинается 182.19.13...
Когда вы запустите команду, вы должны увидеть что-то вроде:
Connected to foo.
Escape character is '^]'.
220 foo ESMTP Postfix (Ubuntu)
Если вы не видите ничего подобного, пожалуйста, опубликуйте вывод / ошибку
Комментарии:
1. Сервер smtp настроен на том же компьютере.
2. В этом случае вы могли бы попробовать изменить имя хоста, к которому вы подключаетесь — посмотрите, есть ли у вас другие результаты с внешним именем хоста (например mail.example.com или что бы это ни было), localhost, внешний ip-адрес или 127.0.0.1.