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

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

Я пытался отправить электронное письмо с помощью 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), delay = 00: 00: 01, xdelay = 00: 00: 00, mailer = relay, pri = 30273, relay = [127.0.0.1]. 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 включен. Что еще мне нужно сделать, чтобы получить почту?

Думаю, я только что решил это. У меня в / 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 так что Отправить почту будет думать, что он использует реальный домен для отправки электронной почты.

Вы должны настроить в своих сценариях заголовки электронной почты, чтобы From: sender@domain.com.

В моем случае в Ubuntu 16.04 на экземпляре AWS нужно было добавить /etc/mail/sendmail.mc:

define(`confDOMAIN_NAME', `mydomainname.com')dnl

в строке перед MAILER_DEFINITIONS строку в конец файла И добавьте ту же строку в конец /etc/mail/submit.mc. Затем введите sudo su для root-прав и скомпилировать в config с:

m4 sendmail.mc > sendmail.cf
m4 submit.mc > submit.cf

...затем exit судо. В заключение, sudo service sendmail restart для перезапуска sendmail, и оттуда письма появлялись как отправленные с доменного имени. Ни одна из других команд FEATURE или MASQUERADE не требовалась, ни запись в /etc/hosts файл.

В твоем sendmail.mc Добавить:

LOCAL_CONFIG
Djmyserver.com

Перекомпилировать sendmail.cf, перезапустите sendmail и все будет в порядке