Strumento per l'analisi dei registri SMTP che trova i rimbalzi
Domanda
La nostra applicazione Web invia e-mail. Abbiamo molti utenti e molti rimbalzi. Ad esempio, l'utente cambia azienda e la sua e-mail aziendale non è più valida.
Per trovare i rimbalzi, analizzo il file di registro SMTP con il parser di registro. I registri provengono dal server Microsoft SMTP.
Alcuni rimbalzi sono fantastici, come 550+#5.1.0+Address+rejected+user@domain.com
. C'è user@domain.com
nel rimbalzo.
Ma alcuni non hanno l'e-mail nel messaggio di errore, come 550 + No + such + recipiente
.
Ho creato un semplice script Ruby che analizza i log (usa il parser di log) per scoprire quale mail ha causato qualcosa come 550 + No + such + recipiente
.
Sono solo sorpreso di non riuscire a trovare uno strumento che lo faccia. Ho trovato strumenti come Zabbix e Splunk per l'analisi dei log, ma sembrano eccessivi per un compito così semplice.
Qualcuno conosce uno strumento che potrebbe analizzare i log SMTP, trovare rimbalzi ed e-mail che li causano?
Soluzione
Questo articolo è esattamente ciò che stai cercando. Si basa sul fantastico strumento log parser .
Log parser è un potente, versatile strumento che fornisce query universali accesso a dati testuali come il registro file, file XML e file CSV, come nonché fonti di dati chiave sul Finestre & # 174; sistema operativo come Registro eventi, registro, file sistema e Active Directory & # 174 ;. tu comunica a Log Parser quali informazioni bisogno e come lo si desidera elaborato. I risultati della tua query possono essere formattato in modo personalizzato in output basato su testo, o possono essere insistiti per di più target speciali come SQL, SYSLOG o un grafico. La maggior parte dei software è progettata per realizzare un numero limitato di compiti specifici. Log Parser è diverso ... il numero di modi in cui può essere utilizzato è limitato solo dalle esigenze e immaginazione dell'utente. Il world è il tuo database con Log Parser.
Altri suggerimenti
Per quanto posso vedere, l'analisi dei file di registro è davvero utile solo per rilevare i messaggi che vengono rifiutati a livello di sessione SMTP. Che dire dei rimbalzi che si verificano dopo che l'MTA remoto ha accettato un messaggio per la consegna ma successivamente non riesce a consegnarlo?
Utilizziamo la seguente configurazione per rilevare e classificare tutti i rimbalzi dopo la consegna all'MTA remoto.
-
A tutte le mail in uscita viene data una intestazione unica del percorso di ritorno che, quando decodificata , identifica l'indirizzo di posta elettronica del destinatario e la particolare corrispondenza.
-
Un Apache James che riceve posta restituita all'indirizzo del percorso restituito.
-
Un mailet personalizzato, sviluppato in Java ed eseguito all'interno di Apache James che decodifica l'indirizzo, invia il testo dell'email a boogietools bounce studio per la classificazione del tipo di rimbalzo e quindi persiste i risultati nel nostro database.
Funziona molto, molto bene. Siamo in grado di rilevare rimbalzi duri permanenti e rimbalzi temporanei transitori che sono ulteriormente classificati in tipi di rimbalzo molto granulari come rifiuti di spam, risposte fuori sede ecc.
Non vuoi analizzare i log per provare a identificare i rimbalzi. Avrai sia falsi negativi che falsi positivi solo guardando i log.
I rimbalzi potrebbero essere generati a valle del server a cui si recapita. Sembreranno consegne riuscite nei registri del server in uscita.
La corrispondenza del modello ingenuo per i rimbalzi nei registri in entrata (dal mittente nullo a uno dei tuoi indirizzi VERP) non sarà accurata. Ci sono alcuni motivi per cui:
- Ci saranno avvisi di ritardo mescolati con rimbalzi di errori effettivi.
- La maggior parte degli autorisponditori fuori sede e simili usano il mittente null per prevenire la sindrome dei battlin-bots.
- Allo stesso modo, i sistemi di risposta alle sfide (come * spit * boxbe.com) tendono a utilizzare il mittente null.
- I tuoi indirizzi mittente VERP, se sono persistenti per destinatario, verranno raccolti dagli spammer e torneranno come target spam o backscatter.
Quindi, purtroppo, l'unico modo affidabile per farlo è esaminare i messaggi di rimbalzo stessi. La maggior parte di essi avrà un "rapporto / stato di consegna" Parte MIME secondo RFC1894 e, a seconda della lingua scelta, ci sono probabilmente librerie o moduli per aiutare con altri formati di rimbalzo. L'unico con cui ho esperienza diretta è il modulo Perl Mail :: DeliveryStatus :: BounceParser, che funziona abbastanza bene.
Mi piace logParser. Quando ho bisogno di analizzare qualcosa di molto specifico o personalizzato o usare espressioni regolari, uso biterScripting. In realtà hanno alcuni script di esempio che ho usato per iniziare. Uno è su http://www.biterscripting.com/Download/SS_WebLogParser.txt .
Ho basato un programma di contatore di rimbalzi su questo post, solo per scoprire in seguito che questo metodo in realtà non funziona per mittenti di grandi volumi perché i log SMTP non sono in ordine sequenziale. C'è di più al riguardo nel mio post sul blog: Rilevamento rimbalzo email nei log SMTP e Why It Is Impossible .