Назад | Перейти на главную страницу

Многие письма, которые я отправляю, возвращаются

Я использую сервер Ubuntu 10.04 LTS и Amazon EC2. Просто загрузил сообщество, установил apache2, php5, sendmail ... вот и все.

В конфигурациях ничего не менял. Вчера вечером я разослал информационный бюллетень примерно 2000 получателям.

mail.log показывает, что сообщения принимаются к доставке, например:

Jan 27 16:40:42 ip-10-48-213-66 sendmail[24725]: p0RGefNE024725: to=quatember@zoovienna.at, ctladdr=www-data (33/33), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=67364, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p0RGefKv024726 Message accepted for delivery)

Но, похоже, это происходит так:

Jan 27 16:40:42 ip-10-48-213-66 sm-mta[24728]: p0RGefKv024726: to=<quatember@zoovienna.at>, ctladdr=<www-data@ip-10-48-213-66.eu-west-1.compute.internal> (33/33), delay=00:00:01, xdelay=00:00:00, mailer=esmtp, pri=157483, relay=smtp.zoovienna.at. [83.64.127.201], dsn=4.0.0, stat=Deferred: 450 4.1.8 <www-data@ip-10-48-213-66.eu-west-1.compute.internal>: Sender address rejected: Domain not found

или это

Jan 27 20:13:39 ip-10-48-213-66 sm-mta[10058]: p0RH5QCC032505: to=<inga.bertram@online.de>, ctladdr=<www-data@ip-10-48-213-66.eu-west-1.compute.internal> (33/33), delay=03:08:13, xdelay=00:00:01, mailer=esmtp, pri=1777483, relay=mx00.kundenserver.de. [212.227.15.150], dsn=4.0.0, stat=Deferred: 421 invalid sender domain 'ip-10-48-213-66.eu-west-1.compute.internal' (misconfigured dns?)

или это

Jan 27 20:13:39 ip-10-48-213-66 sm-mta[10058]: p0RH2CUw031458: to=<urs.nueesch@bluewin.ch>, ctladdr=<www-data@ip-10-48-213-66.eu-west-1.compute.internal> (33/33), delay=03:11:27, xdelay=00:00:00, mailer=esmtp, pri=1777483, relay=mxzhb.bluewin.ch. [195.186.18.144], dsn=4.0.0, stat=Deferred: 451 MAIL FROM: <www-data@ip-10-48-213-66.eu-west-1.compute.internal> Unable to verify MX-Record for domain ip-10-48-213-66.eu-west-1.compute.internal

всегда несколько раз и все еще работает ...

Я заметил, что /etc/mail/trusted-users пусто. Но поскольку электронная почта, кажется, выходит, все в порядке.

/etc/mail/local-host-names выглядит как

localhost
ip-10-48-213-66.eu-west-1.compute.internal

теперь, если я отправлю письмо, используя следующую команду php:

var_dump(mail('joehopf@gmail.com','subject!','body!','From: from@blah.com','-f from@flimmit.com'));

я получил следующее письмо:

Delivered-To: joehopf@gmail.com
Received: by 10.42.219.8 with SMTP id hs8cs55591icb;
        Fri, 28 Jan 2011 03:28:51 -0800 (PST)
Received: by 10.213.35.209 with SMTP id q17mr4059475ebd.53.1296214129940;
        Fri, 28 Jan 2011 03:28:49 -0800 (PST)
Return-Path: <from@flimmit.com>
Received: from ip-10-48-213-66.eu-west-1.compute.internal (flimmit.com [79.125.4.119])
        by mx.google.com with ESMTPS id u13si41731903eeh.3.2011.01.28.03.28.20
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Fri, 28 Jan 2011 03:28:49 -0800 (PST)
Received-SPF: pass (google.com: best guess record for domain of from@flimmit.com designates 79.125.4.119 as permitted sender) client-ip=79.125.4.119;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of from@flimmit.com designates 79.125.4.119 as permitted sender) smtp.mail=from@flimmit.com
Received: from ip-10-48-213-66.eu-west-1.compute.internal (localhost [127.0.0.1])
    by ip-10-48-213-66.eu-west-1.compute.internal (8.14.3/8.14.3/Debian-9.1ubuntu1) with ESMTP id p0SBRYQF000694
    for <joehopf@gmail.com>; Fri, 28 Jan 2011 11:27:34 GMT
Received: (from www-data@localhost)
    by ip-10-48-213-66.eu-west-1.compute.internal (8.14.3/8.14.3/Submit) id p0SBRYCv000693;
    Fri, 28 Jan 2011 11:27:34 GMT
Date: Fri, 28 Jan 2011 11:27:34 GMT
Message-Id: <201101281127.p0SBRYCv000693@ip-10-48-213-66.eu-west-1.compute.internal>
X-Authentication-Warning: ip-10-48-213-66.eu-west-1.compute.internal: www-data set sender to from@flimmit.com using -f
To: joehopf@gmail.com
Subject: subject!
X-PHP-Originating-Script: 1000:test.php
From: from@blah.com

body!

Я также заметил, что отправка почты занимает довольно много времени, и я знаю, что это проблема, если что-то не так с разрешением адресов.

мой путь sendmail не настроен в php.ini, но информация php показывает следующее, что должно быть правильным: /usr/sbin/sendmail -t -i

Это письмо от инструмента рассылки новостей (phplist), которое прошло и не показывает заголовок x-authentication-warning.

Могу я как-то исправить это или есть способ определить, кто получил письма, а кто нет, чтобы я мог повторно отправить?

Любая помощь приветствуется.

Обновить:

Я только заметил, что инструмент рассылки, вероятно, не установил параметр -f. Я исправил это. Теперь локальный адрес все еще отображается, но это то же самое в других электронных письмах из профессиональных списков, таких как golem.

Итак, в электронном письме выше я использовал параметр -f. Сейчас это нормально или все еще проблематично?

Ваш sendmail настроен неправильно. Он использует внутреннее доменное имя EC2, ip-10-48-213-66.eu-west-1.compute.internal, в качестве домена отправителя, и, поскольку его нельзя найти и проверить, электронные письма отклоняются. . Вам необходимо поместить туда реальное доменное имя в Интернете, которое имеет обратный DNS-поиск по IP-адресу, с которого вы отправляете сообщения - вам нужно обратиться в Amazon за разрешением на отправку электронной почты из EC2, чтобы они настроили обратный DNS для вас.

Отправка электронной почты с серверов EC2 может быть сложной задачей в любом случае, поскольку многие IP-адреса EC2 находятся в черных списках. Вам, вероятно, лучше изучить новую простую службу электронной почты, которую только что запустила Amazon.

Хороший способ проверить, кто получает ваши электронные письма, - создать уникальный адрес возврата для каждого получателя с помощью Return-Path заголовок, таким образом вы можете проанализировать свой почтовый ящик для отказов и точно сопоставить одного за другим, кто вернул вам письмо.

Я вижу, что вы используете EC2, действительно не рекомендуется запускать вашу почтовую службу напрямую из EC2, так как скорость доставки очень низкая и непостоянная (именно ваша проблема), у меня тоже была эта проблема с EC2, и я просто решил заключить контракт с Внешний SMTP-провайдер, чтобы разобраться со всей доставляемостью и отскоками, он достаточно дешев, чтобы оправдать затраты, особенно при таких малых объемах.

Я использую AuthSMTP (http://www.authsmtp.com/) для этого они дешевы и очень надежны.

Я решаю эту проблему, когда делаю следующие шаги:

# vi /etc/mail/sendmail.mc

MASQUERADE_AS(domain.com)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(domain.com)dnl

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

# yum install sendmail-cf

# /etc/init.d/sendmail restart