I have A VPS with multiple domains setup. Some of the domains have PHP sites that send email. It turns out that some email servers are rejecting those emails with error: "Sender address rejected: Domain not found".(This from logs in exim_mainlog on server).
The interesting thing is that the domain it is reporting to be using as the sender is not the one I set in php mail(), rather an internal server name.
So for example if my VPS master domain is mymasterdomain.com and I have multiple sites such as site1.com, site2.com, etc, then the php program that sends email will send the email with a from field set in the header to: webapp@site1.com, но письмо будет отклонено с пометкой « Адрес отправителя отклонен: домен не найден в site1cpanelaccount@com.mymasterdomain.com ».
com.mymasterdomain.com - это то, как хостинговая компания идентифицирует мой VPS-сервер внутри, и очевидно, это ни к чему не приводит.
Записи SPF настроены правильно и включают IP-адрес сайта. Я провел тест, используя php, чтобы отправить одно и то же письмо на два адреса. Один отклоняет его, но другой в учетной записи Gmail принимает его, что позволяет мне смотреть на заголовки.
Я вижу проблему - заголовки имеют:
Получено: от cpanelSite1Account от com.mymasterdomain.com с локальным (Exim 4.91) (из конверта) id 1fWXCF-0006ED-Vv; Пт, 22 июня 2018 г. 09:37:56 -0500
Кому: something@somewhere.com
Тема: ПОЛУЧЕН НОВЫЙ ЗАПРОС
X-PHP-Script: www.site1.com/inquire_process.php для XXX.XXX.XXX.XXX
X-PHP-Originating-Script: 522: inquire_process.php
From: webapp@site1.com
[From:] правильный, но [Received: from] содержит информацию о VPS, которая вызывает у меня проблемы.
Как мне это исправить? В php? в cpanel? в настройках sendmail или exim? Любая помощь будет признательна - я уже немного почесал ...
Вероятно, происходит следующее:
From:
mail ()
, использует (скрытый) в качестве отправителя конверта, в то время как (скрытый) в заголовках параметр mail (для , тема, сообщение, заголовки, параметры);
используется только для генерации заголовков почты. / etc / hosts
. Вы можете исправить это на любом уровне (решения в соответствующем порядке, не лучшие вначале):
A
. Используйте дополнительный параметр для отправки отправить конверт (скрыто) 'От: (скрыто) '-f (скрыто)
От man sendmail
:
-f отправитель
Установите адрес отправителя конверта. Это адрес, по которому проблемы с доставкой отправляются.
Добавьте существующее имя хоста в строку / etc / hosts
для 127.0.0.1
или фактического IP-адреса сервера. Это должна быть запись A
из существующего домена, указывающая на ваш сервер.
Я думаю, что решение №2 ближе всего к вашей цели, а №1 и №3 могут решить проблему.