sendmail - убедитесь, что письмо отправлено

Я пытаюсь отправить электронную почту через sendmail и не могу поставить их в очередь. Я только хочу, чтобы электронные письма отправлялись, что до сих пор было крайней проблемой.

как в sendmail.cf, так и submit.cf у меня есть этот параметр:

O QueueLA=99

В почтовом журнале написано, что рассматриваемое письмо отправляется и ставится в очередь. Серьезно, разве это не ужасно смущает?

Feb 10 17:04:34 nnn sendmail[27910]: r1AG4Q0V027910: to=vvv@someone.com, 
ctladdr=admin@vvv.se (33/33), delay=00:00:08, xdelay=00:00:04, 
mailer=relay, pri=30391, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, 
stat=Sent (r1AG4U09027911 Message accepted for delivery)

Feb 10 17:04:36 nnn sm-mta[27913]: r1AG4U09027911: to=<vvv@someone.com>, 
delay=00:00:06, xdelay=00:00:02, mailer=esmtp, pri=120589, 
relay=mail1.someone.com. [207.106.200.39], dsn=2.0.0, stat=Sent 
(Queued! 1360512372 qp 15149 <201302101604.r1AG4Q0V027910@mail.nnn.se>)
  1. На момент написания этого журнала отправлено письмо или нет?
  2. Есть ли способ предотвратить эту последнюю очередь?

3 ответа

Решение

После некоторых исследований я обнаружил, что сообщение в скобках (Queued! 1360512372 qp 15149 <201302101604.r1AG4Q0V027910@mail.nnn.se>) является сообщением от принимающего сервера.

это означает:

  1. да письмо отправлено.
  2. нет, так как сообщение ставится в очередь на принимающем сервере.

Вот некоторые объяснения того, как я мог получить свой ответ: статус журнала почты freebsd 8, что они означают? некоторые цитаты из ответа, который показался мне надежным:

"Статус статуса отправлено означает, что удаленный сервер принял сообщение".

"Комментарии в круглых скобках записи о состоянии - это ответ, который удаленный сервер отправляет при отправке электронного письма. Это полезно, чтобы узнать, почему сообщение было отклонено, отложено или задержано".

Почему вы хотите изменить это? Именно так должен работать sendmail. Sendmail, прежде чем подтвердить исходному отправителю, что он принял почту, сохраняет ее в очереди на жестком диске. Затем он берет его и сохраняет физическую копию, пока следующий получатель не подтвердит получение. Именно так sendmail гарантирует, что почта не будет потеряна в случае жесткого системного сбоя или если сам почтовый сбой. Sendmail также задерживает почту по разным причинам. Иногда другие MTA не контролируют задержку электронной почты (проблемы с сетью, системные нагрузки, серый список). Нужно безопасно где-то хранить почту.

Электронная почта не является своевременным механизмом доставки, как IM. Подождите 2 секунды в нормальных условиях.

Вы знаете, что оно отправлено, когда вы видите другой почтовый сервер с stat=Sent: relay=mail1.someone.com. [207.106.200.39], dsn=2.0.0, stat= отправлено

SMTP не гарантирует, что электронная почта достигнет места назначения; это лучший способ доставки без синхронной сквозной обратной связи о судьбе вашего трафика. Сервер, на который вы доставляете почту, должен прямо сказать вам, принимает ли он их для возможной доставки, но ему не нужно доставлять их синхронно (он может хранить их на потом и не сообщать вам), и ему не нужно доставлять их напрямую (путь имеет несколько прыжков). На практике почти все демоны SMTP стоят в очереди.

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

Ваша заявка должна рассматривать принятие следующего прыжка как успешный случай. Это самый надежный отзыв, который SMTP будет вам постоянно давать.

Другие вопросы по тегам