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?

È stato utile?

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.

  1. 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.

  2. Un Apache James che riceve posta restituita all'indirizzo del percorso restituito.

  3. 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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top