Я использую sendmail на своем веб-сервере, который пока работает нормально. Однако, когда я отправляю электронные письма в тот же домен, с которого отправляю их, они никогда не доставляются. Я временно изменил информацию электронной почты в своем приложении на другой домен, после чего он без проблем отправил на мои учетные записи электронной почты домена.
// does not work
$from = 'noreply@mydomain.com'
$to = 'admin@mydomain.com'
// works fine
$from = 'noreply@someotherdomain.com'
$to = 'admin@mydomain.com'
Кроме того, сервер, на котором это работает, является отдельным сервером по сравнению с тем, на котором настроены почтовые учетные записи и домен. (+ Я на Linux)
sendmail использует конфигурацию по умолчанию.
Я пробовал тестировать с помощью следующей команды, но, похоже, получаю кучу непроверенных ошибок отправителя. Когда я делаю это со своей учетной записью Gmail, все проходит нормально.
echo -e "To: test@mydomain.com\nSubject: Test\nTest\n" | sendmail -bm -t -v
редактировать
Оказывается, ему просто нужен адрес электронной почты, с которого он пришел. Есть ли способ обойти это?
Как вы уже заметили, это потому, что адрес отправки недействителен.
Большинство почтовых серверов проверяют действительность домена при приеме электронной почты, но обычно не пытаются проверить фактический адрес. (Некоторые почтовые серверы будут притворяться, что адрес существует, если вы их спросите, даже если это не мешает автоматическим системам создавать список действительных адресов)
Однако ваш собственный почтовый сервер знает, что noreply @ не является допустимым адресом, и поэтому отклонит письмо.
Самый простой способ обойти это - настроить noreply @ как действительный адрес и просто отбросить отправленные на него электронные письма. В UNIX / Linux вы обычно можете просто указать адрес на запись в псевдонимах, которая доставляется в | / dev / null.
Без какой-либо дополнительной информации я предполагаю, что ваш локальный демон smtp неправильно настроен и доставляет почту на @ mydomain.com локально, а не пересылает их вверх по течению. Добавьте в свой пост полную конфигурацию почтового сервера, если хотите получить более подробный ответ.
Ваша служба smtp использует ваш внутренний DNS, который не отправляет @ mydomain.com в веб-NS, который получил запись MX. Если вы отправляете эхо-запрос на mydomain.com с этого веб-сервера, он, вероятно, показывает ваш внутренний адрес IIS. Я добавляю ту же проблему, и в моем случае, поскольку это был автономный сервер без каких-либо других служб, я поставил веб-статический DNS, например 8.8.8.8, для проверки этой теории, и он сработал. (при условии, что вы находитесь на сервере Windows)