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

sendmail не доставляет сообщения получателям

Я столкнулся с рядом проблем, заставляя sendmail работать. Ни одно из решений, которые я пробовал, не сработало.

Во-первых: sendmail зависал 60 секунд, а затем не отправлял письмо.

Чтобы решить эту проблему, я использовал предложения из Интернета, чтобы установить /etc/hostname на полное доменное имя (FQDN), а затем введите его /etc/hosts также. это сделал избавьтесь от зависания, но я до сих пор не получаю писем, отправленных с sendmail.

Второе: Установлен постфикс

Это не устранило проблему. Отправка электронного письма через sendmail или mail в командной строке оба не работают. Пример:

echo "a message" | sendmail someemail@gmail.com
echo "a message" | mail someemail@gmail.com

Обе команды возвращаются мгновенно без ошибок, но на учетную запись Gmail никогда не поступает электронное письмо.

Я также убедился, что порт 25 в маршрутизаторе открыт (хотя это не должно быть проблемой, поскольку Thunderbird может отправлять электронные письма за маршрутизатором).

Мне нужно, чтобы это работало для PHP, но я не могу понять, где на многих этапах от программы до удаленного почтового сервера происходит сбой. Как мне понять это?

сервер должен иметь возможность подключаться к другим серверам smtp

$ nc -v mta5.am0.yahoodns.net 25
Connection to mta5.am0.yahoodns.net 25 port [tcp/smtp] succeeded!
220 mta1193.mail.ne1.yahoo.com ESMTP YSmtpProxy service ready
^C

Вот как это может выглядеть, когда порт 25 закрыт для исходящего трафика:

$ nc -v mta5.am0.yahoodns.net 25
nc: connect to mta5.am0.yahoodns.net port 25 (tcp) failed: Connection timed out 

Посмотрите, блокируются ли запросы в ваших брандмауэрах.

Вы пробовали другие порты, кроме 25? Скорее всего, у вас не будет этой проблемы, если вы не пользуетесь услугами домашнего провайдера. Кроме того, когда вы говорите, что thunderbird отправляет почту, вы аутентифицируетесь на рассматриваемом сервере? В противном случае вы, вероятно, подключаетесь к другому серверу через порт ssl.