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

sendmail на машине ubuntu (9.10) «прекратил» отправку почты

Я разрабатываю на своей машине ubuntu 9.10 для Интернета (php).
Я использую его sendmail для отправки писем, и при разработке на моей локальной машине я отправляю локальные письма (своему пользователю doron).

Еще несколько дней назад я мог отправлять письма как из функции php mail (), так и из командной строки с помощью команды mail.
Я использую sendmail с mailutils.

С последних дней вроде перестало работать.
Когда я пытаюсь отправить почту из командной строки, я получаю следующее в моем системном журнале (и mail.info, и mail.log):

Mar  3 13:27:58 doron-desktop sendmail[4693]: o23BRwlA004693: from=doron, size=84, class=0, nrcpts=1, msgid=<201003031127.o23BRwlA004693@doron-desktop.>, relay=doron@localhost
Mar  3 13:27:58 doron-desktop sm-mta[4694]: o23BRwtQ004694: ruleset=check_rcpt, arg1=<doron@doron-desktop>, relay=localhost [127.0.0.1], reject=553 5.1.8 <doron@doron-desktop>... Domain of sender address doron@doron-desktop does not exist
Mar  3 13:27:58 doron-desktop sendmail[4693]: o23BRwlA004693: to=<doron@doron-desktop>, ctladdr=doron (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30084, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.8, stat=User unknown
Mar  3 13:27:58 doron-desktop sm-mta[4694]: o23BRwtQ004694: from=<doron@doron-desktop>, size=84, class=0, nrcpts=0, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]

Попытка подключиться к порту 25 локально по telnet приводит к следующему (тот же результат для doron @ doron-desktop):

doron@doron-desktop:/var/mail$ telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 doron-desktop. ESMTP Sendmail 8.14.3/8.14.3/Debian-9ubuntu1; Wed, 3 Mar 2010 13:26:06 +0200; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
helo localhost
250 doron-desktop. Hello localhost [127.0.0.1], pleased to meet you
mail from: doron@localhost
250 2.1.0 doron@localhost... Sender ok
rcpt to: root@localhost
553 5.1.8 root@localhost... Domain of sender address doron@doron-desktop does not exist

Однако, если я сделаю то же самое, но использую doron@127.0.0.1 в поле mail from, я получу:

250 2.1.5 root... Recipient ok

Мой файл / etc / hosts:

127.0.0.1       localhost
127.0.1.1       doron-desktop doron-desktop.

(Если у меня нет «doron-desktop.» (С конечной точкой), почтовой команде требуется много времени (около 30 секунд), пока она не ответит, но результаты те же.)

Я считаю, что вам нужно изменить файл hosts на состояние:

127.0.0.1    localhost
127.0.0.1    doron-desktop

Версия 127.0.1.1 была представлена ​​в Ubuntu Edgy. Но некоторые приложения ищут, чтобы имя хоста соответствовало 127.0.1.1. Sendmail - одно из таких приложений. Вы можете оставить 127.0.1.1, если хотите придерживаться нового стандарта, но обязательно добавьте 127.0.0.1 doron-desktop.

Также обратите внимание на следующее в журнале ошибок:

ruleset=check_rcpt

После чего вам сообщают, что ваш домен doron-desktop не существует. Существуют разные файлы, которые позволят вам установить ваше доменное имя. Попробуйте установить доменное имя в следующих областях:

/etc/hosts
/etc/resolv.conf
sendmail conf files

Вам определенно нужно убедить sendmail в том, что у вас есть доменное имя и что это полное доменное имя (хотя это не так). Если у вас есть зарегистрированное доменное имя (в файле hosts):

doron-desktop.somedomain.com

Серверу все равно, что общедоступный DNS не указывает на ваш настольный компьютер. При этом почтовый сервер, на который вы отправляете электронную почту слишком может (или будет) заботиться о том, чтобы ваш настольный сервер отправлял электронную почту от имени любого доменного имени, которое вы указали в файле hosts, и может либо блокировать электронные письма, либо возвращать их, либо вносить их в черный список (если вы просто тестируете, черного списка не будет - вы нужно будет разослать тысячи тестов).

Похоже, что в какой-то момент sendmail теперь проверяет, разрешается ли ваш домен.

В этом случае вы можете заставить песочную почту принимать неразрешимые домены, перестроив sendmail.cf. Это включает в себя обновление sendmail.mc следующим образом:

FEATURE(`accept_unresolvable_domains')dnl

А затем перестройте sendmail с помощью команды make и перезапустите sendmail:

/etc/mail/make

Прежде чем продолжить, убедитесь, что у вас есть резервные копии sendmail.mc и sendmail.cf.