Назад | Перейти на главную страницу

В соединении отказано. Почему я не могу отправлять электронную почту с одного сервера, но могу с другого?

Я пытаюсь отправить электронное письмо с PHP, используя mail(). У меня есть полный доступ к обоим серверам. Нет ничего необычного iptables правила для любого (ничего не блокирует установку по умолчанию sendmail)

Я установил sendmail на одном сервере пару лет назад (Ubuntu 10.10), и он отлично отправляет почту с PHP. Новый сервер (Ubuntu 10.04, настроен на этой неделе) не будет отправлять почту - или он пытается, но каждый получатель отказывается получать.

Я проверил sendmail регистрируется на новом сервере и показывает, что все MX-серверы доменов-получателей Connection refused...

Нет никаких различий в настройке этих серверов. У них по умолчанию sendmail установить. Стандарт Стек ЛАМП. Они полностью находятся на разных IP-адресах, но работают в одном домене (хотя, очевидно, на разных машинах в домене).

Единственное, что я могу думать, это то, что обратный DNS, настроенный для нового сервера, не принимается фильтром спама на MX-серверах получателя. Это возможно? Я уже отправил запрос на изменение обратного DNS на что-то более подходящее для домена нового сервера.

Старый сервер находится за NAT маршрутизатор, поэтому IP-адрес, с которого создается электронное письмо при отправке со старого сервера, разрешается в доменное имя, которое `` правильно '' представляет сервер ... но IP-адрес нового сервера привязан непосредственно к серверу, но текущий rDNS разрешается в совершенно другой домен.

Что еще мне могло не хватать?


ОБНОВИТЬ:

Образец /var/log/mail.log строка:

Jan 11 12:16:03 ernesto sm-mta[1177]: q071CKnQ002371:
to=<xxx@xxx.xxx>, ctladdr=<www-data@my.server.com> (33/33), delay=4+11:03:43,
xdelay=00:00:00, mailer=esmtp, pri=58080351, relay=aspmx3.googlemail.com.,
dsn=4.0.0, stat=Deferred: Connection refused by aspmx3.googlemail.com.

Решено! Выяснилось, что у хостинг-провайдера были заблокированы пробные аккаунты, чтобы предотвратить злоупотребления. По-видимому, они обычно отменяются, когда новые клиенты проходят аутентификацию (что я сделал), но этого не произошло. К счастью, теперь они были, и я могу отлично отправлять электронную почту.

Итак, урок здесь: ничего не предполагайте! Вернитесь к своему провайдеру первый чтобы узнать у них, не мешает ли что-нибудь тому, что вы делаете.

Простите, что побеспокоил вас, прекрасные люди. Спасибо за все ваши предложения. Все они в конце концов помогли найти ответ :)

Проверьте исходящее соединение, попытавшись подключиться к внешнему почтовому серверу вручную. Самый простой способ, наверное, запустить telnet aspmx.l.google.com 25 и посмотрите, войдете ли вы в контакт.

Если это сработает, то дело в настройке sendmail.

Поскольку это Ubuntu, я бы очень хотел apt-get install postfix, выберите правильный вариант из мастера, и пусть он сам разберется! Если у вас нет веской причины использовать sendmail (они почти на 100% совместимы с точки зрения CLI, PHP и т.д.), установите Postfix.

Это проблема сети. «В соединении отказано» означает, что в соединении отказано. Так что ничего с программным обеспечением, а с сетью.

Начните с проверки сетевых проблем. На ум приходят ping, traceroute, telnet, route, iptables и другие. Первый запуск: подключен ли сетевой кабель?