sendmail, exim, or php mail settings to avoid “Sender address rejected: Domain not found” on vps

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? Любая помощь будет признательна - я уже немного почесал ...

0
задан 23 June 2018 в 01:53
1 ответ

Вероятно, происходит следующее:

  1. MTA-получатель проверяет существование отправителя конверта вместо From:
  2. Sendmail, вызываемый функцией PHP mail () , использует (скрытый) в качестве отправителя конверта, в то время как (скрытый) в заголовках параметр mail (для , тема, сообщение, заголовки, параметры); используется только для генерации заголовков почты.
  3. Sendmail получает собственное имя хоста от первого хоста, найденного для себя в / etc / hosts .

Вы можете исправить это на любом уровне (решения в соответствующем порядке, не лучшие вначале):

  1. Сделайте существующим домен / имя хоста, используемое в качестве отправителя конверта, добавив запись A .
  2. Используйте дополнительный параметр для отправки отправить конверт (скрыто) 'От: (скрыто) '-f (скрыто)

    От man sendmail :

     -f отправитель
     

    Установите адрес отправителя конверта. Это адрес, по которому проблемы с доставкой отправляются.

  3. Добавьте существующее имя хоста в строку / etc / hosts для 127.0.0.1 или фактического IP-адреса сервера. Это должна быть запись A из существующего домена, указывающая на ваш сервер.

Я думаю, что решение №2 ближе всего к вашей цели, а №1 и №3 могут решить проблему.

1
ответ дан 4 December 2019 в 15:54

Теги

Похожие вопросы