Я пытался отправить письмо с помощью mail()
функции php, но это как-то не удалось, жалуясь, что требуется настоящее доменное имя. В почтовом журнале наблюдается следующее:
sendmail 4984 r25984: from = apache, size = 273, class = 0, nrcpts = 1, msgid = <201.r25@localhost.localdomain>, relay = apache @ localhost
sendmail 4985 r25985: ruleset = 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, mailer = 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
включен. Что еще мне нужно сделать, чтобы доставить почту?
dnl
перед ними.
mail()
? И, sendmail.mc
это не правильный файл конфигурации, этот файл должен быть скомпилирован в sendmail.cf
использование m4
.
sendmail.mc
, изменили строкиlocalhost.localdomain
иlocalhost
что-то значимое и скомпилировали файл mc вsendmail.cf
?