Я хочу отправлять электронные письма с помощью веб-приложения rails. Я установил exim-сервер, и при просмотре журналов отправка работает, но на самом деле электронные письма не отправляются.
У меня была такая же проблема с другим интернет-провайдером.
Адрес отправителя размещен на другом почтовом сервере, другом интернет-провайдере. Я думаю, проблема в том, что отправка не работает, потому что адрес отправителя не размещен на одном сервере. У вас есть какие-нибудь советы по этому поводу? Журналы (exim) говорят мне следующее:
2011-01-01 14:38:06 1PZ1eo-0000Ga-38 <= <> R=1PZ1eo-0000GY-1p U=Debian-exim P=local S=1778
2011-01-01 14:38:08 1PZ1eo-0000Ga-38 => newsletter@foo.bar R=dnslookup T=remote_smtp H=mx1.emailsrvr.com [98.129.184.131] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="C=US,O=mx1.emailsrvr.com,OU=GT21850092,OU=See www.geotrust.com/resources/cps (c)08,OU=Domain Control Validated - QuickSSL(R),CN=mx1.emailsrvr.com"
2011-01-01 14:38:08 1PZ1eo-0000Ga-38 Completed
newsletter@foo.bar
это внешний адрес отправителя.
При отправке письма из командной строки с:
echo "Test" | mail -s Testmail foo.bar@gmail.com
в журналах говорится
2011-01-01 20:45:24 1PZ7OG-0001Vp-Rx <= root@gustav U=root P=local S=360
2011-01-01 20:45:26 1PZ7OG-0001Vp-Rx => foo.bar@gmail.com R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [209.85.229.27] X=TLS1.0:RSA_ARCFOUR_MD5:16 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2011-01-01 20:45:26 1PZ7OG-0001Vp-Rx Completed
и я получаю почту на свою учетную запись Gmail.
Но при отправке через веб-приложение (при локальном тестировании с помощью sendmail все работает нормально) я получаю только этот вывод журнала:
2011-01-01 20:50:08 1PZ7Sq-0001X9-L4 <= <> R=1PZ7Sq-0001X7-Jo U=Debian-exim P=local S=1780
2011-01-01 20:50:11 1PZ7Sq-0001X9-L4 => newsletter@foo.bar R=dnslookup T=remote_smtp H=mx1.emailsrvr.com [98.129.184.3] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="C=US,O=mx1.emailsrvr.com,OU=GT21850092,OU=See www.geotrust.com/resources/cps (c)08,OU=Domain Control Validated - QuickSSL(R),CN=mx1.emailsrvr.com"
2011-01-01 20:50:11 1PZ7Sq-0001X9-L4 Completed
Как правило, расположение адреса отправителя (или, точнее, расположение почтового ящика, связанного с адресом отправителя) не влияет на отправку / получение сообщения при отправке из приложения, запущенного на другом сервере. Из этого есть исключения, например SPF, поэтому это всегда следует проверять в DNS и в файле журнала отправителя MTA.
Данные файла журнала, которые вы предоставили, недостаточны, чтобы помочь определить проблему. Сообщение доставлено newsletter@foo.bar
это не сообщение от вашего веб-приложения, а ошибка (возвращенное сообщение), вызванная реальной проблемой. Он отправляется на этот адрес, потому что это сообщение From
адрес.
Перед этим вам нужно будет предоставить записи файла журнала, которые, вероятно, будут похожи на:
2011-01-01 20:49:00 1PZ7OG-0001W4-22 <= newsletter@foo.bar U = Debian-exim P = local S = 1024
R = говорит, что этот элемент является рикошетом, а идентификатор сообщения, указанный в части R =, является исходным идентификатором сообщения, которое не удалось. Вам нужно будет посмотреть запись в журнале для который чтобы узнать, какой адрес получателя был создан и почему это не удалось.
Вы также можете попробовать exim -bt recipient@addre.ss
чтобы увидеть, что Exim считает нужным делать с конкретным адресом, и добавьте -d
в командную строку, чтобы получить дополнительную информацию об отладке (но имейте в виду, что здесь может быть много проблем).