Para saber o status da entrega de e-mails, o postfix usa o DSN como estado em RFC 3464 . A documentação afirma que há 3 status de entrega
- Sucesso (o servidor aceita a mensagem)
- Atrasado (o servidor não pode entregar agora, mas tentará novamente)
- Falha (o servidor não pode entregá-lo, retornou ao remetente)
Se você enviar e-mail via sendmail
(por exemplo, com função de e-mail no PHP), o o estado padrão é postfix irá notificá-lo em caso de falha ou atraso. Se você deseja ser notificado se a mensagem for enviada com sucesso, adicione o parâmetro -N delay,failure,success
em seu comando sendmail. Esse recurso documentado em Suporte a DSN do Postfix e SENDMAIL (1) .
UPDATE
Para distinguir a entrega e a falha de sucesso, você pode analisar o anexo de DSN email
, especialmente na seção Delivery report
.
Aqui, o snippet de entrega de falhas
Content-Description: Delivery report
Content-Type: message/delivery-status
Reporting-MTA: dns; example.com
X-Postfix-Queue-ID: 3gPtcL5lvrzDFBC
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Fri, 9 May 2014 08:04:50 +0700 (WIT)
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.1.1
Remote-MTA: dns; example.com
Diagnostic-Code: smtp; 550 5.1.1 <[email protected]>: Recipient address
rejected: User unknown in virtual mailbox table
Aqui, o snippet de entrega de sucesso
Content-Description: Delivery report
Content-Type: message/delivery-status
Reporting-MTA: dns; www.example.com
X-Postfix-Queue-ID: 5936DF75D4
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Thu, 8 May 2014 22:58:40 +0700 (WIT)
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: relayed
Status: 2.0.0
Diagnostic-Code: X-Postfix; delivery via dovecot: delivered via dovecot service