Невозможно отправить электронное письмо через sendmail, так как пользователь неизвестен


*hostname.domain.com is substituted throughout for my actual subdomain*

Моя настройка

У меня есть Drupal 7.14 на VPS OpenVZ под управлением Ubuntu 11.10 (также протестирован с 10.04). Ubuntu установила версии репозитория Apache2/php5/mysql (, а не метапакет LAMP) с php5.ini, настроенным для сброса всех сообщений об ошибках в syslog.

Моя проблема

Последовательно, когда сайт должен отправить электронное письмо на любой адрес, он возвращает:

Не в состоянии отправьте электронное письмо. Если проблема не устранена, обратитесь к администратору сайта.

И ошибка Drupal в чтениях "Последние сообщения журнала":

Ошибка при отправке электронной почты (с [email protected] чтобы [email protected]).

Эта ошибка отображается в журналах Drupal независимо от того, на какой адрес отправляется электронное письмо.

Электронное письмо действительно отправляется после небольшой задержки. Обычно 1 секунда, но также 6 или более секунды.

Содержимое системного журнала

Sep 21 13:22:34 hostname sendmail[1648]: q8LDMYe9001648: Authentication-Warning: hostname.domain.com: www-data set sender to [email protected] using -f
Sep 21 13:22:34 hostname sendmail[1648]: q8LDMYe9001648: [email protected], size=649, class=0, nrcpts=1, msgid=<[email protected]>, relay=www-data@localhost
Sep 21 13:22:34 hostname sm-mta[1649]: q8LDMYxB001649: from=<[email protected]>, size=1023, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 21 13:22:34 hostname sendmail[1648]: q8LDMYe9001648: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30649, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q8LDMYxB001649 Message accepted for delivery)
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgo001653: Authentication-Warning: hostname.domain.com: www-data set sender to [email protected] using -f
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgo001653: [email protected], size=465, class=0, nrcpts=1, msgid=<[email protected]>, relay=www-data@localhost
Sep 21 13:22:34 hostname sm-mta[1654]: q8LDMY0G001654: <[email protected]>... User unknown
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgo001653: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30465, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Sep 21 13:22:34 hostname sm-mta[1654]: q8LDMY0G001654: from=<[email protected]>, size=465, class=0, nrcpts=0, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgo001653: q8LDMYgp001653: DSN: User unknown
Sep 21 13:22:34 hostname sm-mta[1654]: q8LDMY0I001654: <[email protected]>... User unknown
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgp001653: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=31489, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Sep 21 13:22:34 hostname sm-mta[1654]: q8LDMY0I001654: from=<>, size=1489, class=0, nrcpts=0, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgp001653: q8LDMYgq001653: return to sender: User unknown
Sep 21 13:22:34 hostname sm-mta[1654]: q8LDMY0K001654: from=<>, size=4700, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 21 13:22:34 hostname sendmail[1653]: q8LDMYgq001653: to=postmaster, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=32513, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q8LDMY0K001654 Message accepted for delivery)
Sep 21 13:22:34 hostname sm-mta[1655]: q8LDMY0K001654: to=root, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=34947, dsn=2.0.0, stat=Sent
Sep 21 13:22:40 hostname sm-mta[1651]: q8LDMYxB001649: to=<[email protected]>, delay=00:00:06, xdelay=00:00:06, mailer=esmtp, pri=121023, relay=fakedomain.com. [86.48.74.19], dsn=2.0.0, stat=Sent (Ok)

Не Понято Мной

Есть несколько кажущихся аномалий, которые я не понимаю, таких как:

  • stat=User unknown
  • DSN: User unknown
  • Sep 21 13:22:34 hostname sm-mta[1654]: q8LDMY0I001654: <[email protected]>... User unknown
  • Я не могу понять, почему ошибка Drupal говорит from [email protected] to [email protected]
  • Я могу отправлять почту из командной строки с помощью sendmail, и это проходит просто отлично:

Содержимое mail.log после отправки с помощью командной строки в корневой

Sep 21 16:00:07 hostname sendmail[3283]: q8LFwxIS003283: from=root, size=167, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Sep 21 16:00:07 hostname sm-mta[3305]: q8LG07FE003305: from=<[email protected]>, size=487, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 21 16:00:07 hostname sendmail[3283]: q8LFwxIS003283: [email protected], ctladdr=root (0/0), delay=00:01:08, xdelay=00:00:00, mailer=relay, pri=30167, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q8LG07FE003305 Message accepted for delivery)
Sep 21 16:00:08 hostname sm-mta[3307]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-RC4-SHA, bits=128/128
Sep 21 16:00:08 hostname sm-mta[3307]: q8LG07FE003305: to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=120487, relay=gmail-smtp-in.l.google.com. [74.125.142.26], dsn=2.0.0, stat=Sent (OK 1348243208 ut4si13805795igb.1)
 5
Author: kenorb, 2012-09-21

2 answers

Эта ошибка появилась после того, как я изменил имя хоста с веб-сервера на webserver.com , таким образом, все, что отправлялось в *@webserver.com, сбивало с толку sendmail, так как он искал локального пользователя с таким именем.

Добавление локального пользователя не решит проблему полностью, потому что, если вы попытаетесь добавить такого пользователя, как firstname.lastname, система Linux будет жаловаться.

Что я сделал, чтобы исправить свою систему, так это правильная настройка sendmail:

  1. Измените /etc/mail/sendmail.mc, добавив следующие строки в самый конец:

    define('MAIL_HUB', 'webserver.com.');
    define('LOCAL_RELAY', 'webserver.com.');
    
  2. Выполнить:

    sudo sendmailconfig
    

При необходимости перезагрузите отправленную почту:

service sendmail restart

В некоторых дистрибутивах Linux (таких как Ubuntu) он может быть перезагружен автоматически.

 5
Author: sapenov, 2020-12-14 15:28:56

Я до сих пор не понимаю, почему, но создание пользователя Linux на моем VPS Ubuntu с именем "noreply" устранило эту проблему. Я рад, что это работает, но был бы признателен за ответ от любого, у кого может быть понимание или альтернативное решение, отличное от создания новых пользователей Linux для каждого идентификатора электронной почты, который я хочу отправить.

Особая благодарность джунедкази за обсуждение этого со мной в комментариях.

 1
Author: bitfed, 2017-04-13 12:46:55