Как настроить реальное доменное имя для адреса отправителя

Я пытался отправить письмо с помощью 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 и у вас должно быть все в порядке

Другие вопросы по тегам