Generalmente ci sono due tipi di rimbalzi
- I rimbalzi causati dal rifiuto diretto del server di posta remoto quando il postfix recapita l'e-mail.
- I rimbalzi causati dal server remoto (server dell'hop successivo dopo il postfisso) non riescono a recapitare il messaggio ai destinatari finali.
Il primo caso era già stato coperto dall'eccellente risposta di Esa Jokinen sopra. La tua scommessa migliore è analizzare maillog.
Il secondo caso era un caso speciale di rimbalzi. Lo scenario di esempio:
- Si invia e-mail con il destinatario fakemail@example.com al server mail.example.com .
- In mail.example.com, fakemail@example.com è stato assegnato a realmail@example.net e deve essere inoltrato a mail.example.net .
- Un giorno mail.example.net rifiuta il tuo messaggio, quindi mail.example.com deve inviare rimbalzi al tuo server.
- Sfortunatamente maillog nel tuo server avrà "dsn = 2" perché mail.example.com ha già accettato il messaggio ma non è riuscito a inoltrarlo a mail.example.net .
Qui l'esempio del secondo tipo rimbalza la posta elettronica. Esiste la regola di inoltro del server di posta Yahoo myuser@yahoo.com -> myuser@example.net . Sfortunatamente il server di posta di example.net rifiuta il messaggio :(
From MAILER-DAEMON Thu Mar 5 05:07:26 2015
Return-Path: <>
X-Original-To: noreply-myuser=yahoo.com@example.org
Delivered-To: noreply-263462085117-1425506829-myuser=yahoo.com@example.org
Received: from nm21-vm7.bullet.mail.gq1.yahoo.com (nm21-vm7.bullet.mail.gq1.yahoo.com [98.136.217.54])
(using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits))
(No client certificate requested)
by mx.example.org (Postfix) with ESMTPS id D6365565FC
for <noreply-263462085117-1425506829-myuser=yahoo.com@example.org>; Thu, 5 Mar 2015 05:07:25 +0700 (WIT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=bounce; t=1425506842; bh=zk/tWZNl6c36dmlPDmakM9ekK8cHVJANXMmSdsbkcWc=; h=From:To:Date:Subject:From:Subject; b=Im95h1qTg6qN3yUI7vF1fXtJ0SbUnzv8rUPwLbpNwxGPN2p8wfosXJzQgJ3nzr4L4ZQ50P2d9E9U4jEUNtnyi7nlFd5kKbtiVuda4H56h1PFnt+7wSpgHcd5Irs/lLODumb6ZZSEpCOWttcB9+JLaDfEUUPjGcbR+xww4XeH5Eo=
From: MAILER-DAEMON@yahoo.com
To: noreply-263462085117-1425506829-myuser=yahoo.com@example.org
Date: Wed, 04 Mar 2015 22:07:22 -0000
Subject: Failure Notice
X-Yahoo-Newman-Property: bmbounce
Sorry, we were unable to deliver your message to the following address.
<myuser@example.net>:
Remote host said:
550 5.1.1 User unknown
[RCPT_TO]
In questo caso, l'unico metodo è analizzare il messaggio di rimbalzo. Sfortunatamente non esiste un formato di rimbalzo standard, quindi è necessario analizzare il corpo e determinare il rifiuto causato.
L'elenco di controllo delle funzioni dell'analisi di rimbalzo postfix:
- Controlla se l'indirizzo VERP era valido. Non vuoi analizzare un messaggio non valido.
- Analizza il corpo, determina se sono rigidi o rigidi.
Per la seconda funzione, puoi cercare su Google alcuni messaggi di rifiuto comuni. L'esempio è questo bounce-regex-list.xml di Jakub Liska .
Esa Jokinen ha fatto un buon punto nel commento qui sotto su questi due tipi di rimbalzo. Se il tuo obiettivo è mantenere la reputazione del server, allora trattare il primo tipo di rimbalzo dovrebbe essere sufficiente. Il secondo rimbalzo riguardava la pulizia delle tue liste. Quindi le email morte dovrebbero essere cancellate liberando così alcune risorse nel tuo server.
Alcuni gestori di mailing list come PHPlist e Mailman affrontano anche questo problema di rimbalzo con l'analisi del corpo dell'e-mail in quanto non hanno risorse per l'analisi del maillog.