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

Устранение неполадок с почтой

Я просто пытаюсь отправить себе электронное письмо. В Ubuntu с помощью sendmail. Почему-то не работает. Вот команда, которую я выполняю, и что появляется, когда я ее запускаю:

jason@ve:~$ echo "Subject: test" | /usr/lib/sendmail -v jason@woollymammothlabs.com
jason@woollymammothlabs.com... Connecting to [127.0.0.1] via relay...
220 ve.5wrvhfxg.vesrv.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9.1ubuntu1; Wed, 29 Dec 2010 13:51:49 -0800; (No UCE/UBE) logging access from: localhost.localdomain(OK)-localhost.localdomain [127.0.0.1]
>>> EHLO ve.5wrvhfxg.vesrv.com
250-ve.5wrvhfxg.vesrv.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<jason@ve.5wrvhfxg.vesrv.com> SIZE=14
250 2.1.0 <jason@ve.5wrvhfxg.vesrv.com>... Sender ok
>>> RCPT To:<jason@woollymammothlabs.com>
>>> DATA
250 2.1.5 <jason@woollymammothlabs.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <jason@woollymammothlabs.com>... Connecting to 205.186.165.157. via esmtp...
050 <jason@woollymammothlabs.com>... Deferred: Connection refused by 205.186.165.157.
250 2.0.0 oBTLpnEj012261 Message accepted for delivery
jason@woollymammothlabs.com... Sent (oBTLpnEj012261 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 ve.5wrvhfxg.vesrv.com closing connection

Мне кажется, что в части «Соединение отклонено 205.186.165.157» что-то идет не так, но я понятия не имею, где и как начинать устранение неполадок. Любой совет?

$ grep 127.0.0.1 /etc/mail/sendmail.cf
O DaemonPortOptions=Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1
O DaemonPortOptions=Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1
R<@> < $* @ [127.0.0.1] >
                        $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
R127.0.0.1              $@ RELAY                originated locally
# DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
# DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl

Я только что написал полный длинный ответ, основанный на том, что мне не удалось понять, что хост, с которого вы это делаете, ve.5wrvhfxg.vesrv.com, также является 205.186.165.157, основным MX для WoWlymammothlabs.com.

Как бы то ни было, если вы действительно жалуетесь на неспособность вашего почтового сервера получить почты, задав вопрос о вашей неспособности Отправить электронная почта, вероятно, не лучший способ получить результат.

Вероятно, ваша проблема в том, что ваш почтовый сервер не прослушивает порт 25, по крайней мере, не на внешнем интерфейсе. Не могли бы вы сделать grep 127.0.0.1 /etc/mail/sendmail.cf и дайте нам знать результаты?

Изменить: поскольку вы это сделали, теперь ясно, что ваш sendmail настроен на прослушивание только на 127.0.0.1, и вам нужно это исправить. slillibri прав, вы не хотите редактировать sendmail.cf вручную, если можете этого избежать, что означает переход в /etc/mail и редактируя соответствующую строку из sendmail.mc. Я не могу говорить об ubuntu, но в Fedora / CentOS это обычно означает изменение строки

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

к

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

обратите внимание, что размещение символа # в начале строки НЕ комментирует строку в файле m4 как это; вы должны добавить dnl закомментировать строку. Затем регенерируйте файл с помощью make sendmail.cf и перезапустите с service sendmail restart. Процедура на ubuntu, скорее всего, будет аналогичной.

Как только это будет сделано, выполните netstat -apn|grep -w 25 и ищи что-то вроде

tcp        0      0 0.0.0.0:25                0.0.0.0:*                   LISTEN      2012/sendmail: acce 

Важный бит 0.0.0.0:25, что означает, что sendmail прослушивает все интерфейсы; если он все еще говорит 127.0.0.1:25 у тебя все еще есть проблема.

Похоже, у вас нет открытого порта 25 в правилах брандмауэра. Вот что я вижу открытым

PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   open     http
3306/tcp open     mysql

Похоже, что конфигурация sendmail по умолчанию в Ubuntu - просто слушать на localhost. Отредактируйте следующую строку в вашем /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl

к

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl

и запустите make в / etc / mail, а затем запустите /etc/init.d/sendmail reload. Как только это будет сделано, вы можете подтвердить, что sendmail прослушивает все адреса, используя

netstat -tnlp

Обратите внимание, что в современных дистрибутивах вам не следует редактировать файл sendmail.cf вручную. В этом безумие.