Как настроить реальное доменное имя для адреса отправителя
Я пытался отправить письмо с помощью php mail()
функционировать, но не получилось, жалуясь на то, что требуется настоящее доменное имя. В почтовом журнале наблюдается следующее:
sendmail 4984 r25984: from = apache, size = 273, class = 0, nrcpts = 1, msgid =<201.r25@localhost.localdomain>, relay = apache @ localhost
sendmail 4985 r25985: набор правил =check_mail, arg1=, relay=mydomain.com [127.0.0.1], reject=553 5.5.4 ... Для адреса отправителя требуется реальное доменное имя
sendmail 4984 r25984: to=external@server.com, ctladdr=apache (48/48), задержка =00:00:01, xdelay=00:00:00, почтовая программа =relay, pri=30273, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0, stat= ошибка формата данных
sendmail 4984 r25984: r25984: DSN: ошибка формата данных
cron может отправлять электронную почту по адресу external@server.com всякий раз, когда возникает проблема с logrotate. Я не уверен, почему php не может это сделать. Я попытался внести изменения в конфигурацию по умолчанию в `sendmail.mc следующим образом:
MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(mycom)dnl
Но, похоже, это не имеет никакого эффекта. Заголовок с адреса в функции php mail уже установлен. Я также гарантировал, что SELinux httpd_can_sendmail
включен. Что еще мне нужно сделать, чтобы доставить почту?
4 ответа
Я думаю, что я только что решил это. У меня есть следующее в / etc / hosts:
127.0.0.1 www.mydomain.com test.mydomain.com
127.0.0.1 cdn.mycdn.com
127.0.0.1 localhost.localdomain localhost myserver.com
Что мне нужно, это разместить myserver.com перед строкой с localhost.localdomain
так что sendmail подумает, что использует реальный домен для отправки электронной почты.
В моем случае на Ubuntu 16.04 на экземпляре AWS нужно было добавить /etc/mail/sendmail.mc
:
define(`confDOMAIN_NAME', `mydomainname.com')dnl
на линии до MAILER_DEFINITIONS
строка в конец файла, И добавьте ту же строку в конец /etc/mail/submit.mc
, Затем введите sudo su
для корневых разрешений, и скомпилируйте для настройки с:
m4 sendmail.mc > sendmail.cf
m4 submit.mc > submit.cf
...затем exit
Судо. В заключение, sudo service sendmail restart
перезапустить sendmail, и оттуда электронные письма появлялись как отправленные с доменного имени. Ни одна из других команд FEATURE или MASQUERADE не требовалась, ни запись в /etc/hosts
файл.
Вы должны настроить в своих сценариях заголовки вашей электронной почты, чтобы иметь From: sender@domain.com
,
В вашем sendmail.mc
добавлять:
LOCAL_CONFIG
Djmyserver.com
Рекомпилированные sendmail.cf
, перезапустите sendmail и у вас должно быть все в порядке