Я просто пытаюсь отправить себе электронное письмо. В 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 вручную. В этом безумие.