Costruire un sistema di archiviazione delle email: le sfide e naturalmente la soluzione – Parte 1
Jeff Goldstein
4 feb 2019
1 min read

Conclusioni principali
L'archiviazione delle email è sempre più essenziale per ambienti di normazione, conformità e verifica.
SparkPost non memorizza il corpo delle email, ma la sua funzionalità Archive consente ai mittenti di ricevere messaggi duplicati che rispecchiano i link di tracciamento e i contenuti.
I corpi delle email possono essere memorizzati in Amazon S3, mentre i metadati degli eventi dei messaggi possono essere memorizzati in MySQL per interrogazioni e referenze incrociate.
Gli eventi dei messaggi di SparkPost forniscono ricchi registri di attività (rimbalzi, consegne, clic, aperture, cancellazioni di iscrizione, reclami e altro).
Le copie d'archivio vengono generate solo inviando email tramite SMTP.
Gli eventi dei messaggi per email originali, archivio, CC e BCC condividono un comune transmission_id.
Il sistema Inbound Email Relay può assorbire messaggi archiviati ma non include il transmission_id, creando una sfida per il collegamento dei dati.
L'inserimento di un hidden unique identifier (UID) nel corpo del messaggio colma quel divario e collega i contenuti in entrata ai registri in uscita.
La combinazione di email archiviate + eventi dei messaggi consente la costruzione di un sistema d'archivio ricercabile e verificabile.
Il progetto a lungo termine include versioni di codice per memorizzare email archiviate in S3 e registrare dati di eventi in MySQL.
L'applicazione finale consentirà una facile ricerca, visualizzazione e riconciliazione del contenuto delle email con tutta la storia degli eventi correlati.
Ideale per industrie con forte regolamentazione che necessitano di completa visibilità su ogni messaggio inviato.
Q&A Highlights
Perché costruire il proprio sistema di archiviazione email?
Le industrie regolamentate spesso richiedono l'archiviazione a lungo termine sia del corpo dell'email sia di tutti i log degli eventi associati. SparkPost non memorizza i corpi dei messaggi, quindi la creazione di un sistema personalizzato garantisce conformità, controllo e visibilità.
Come si ottiene una copia esatta dell'email originale inviata?
La funzione Archive di SparkPost invia una copia di ogni email in uscita agli indirizzi di archivio designati, preservando tutti i link codificati e i comportamenti di tracciamento.
Perché non puoi catturare il corpo dell'email prima di inviare?
La cattura pre-invio non include le modifiche di SparkPost (tracciamento delle aperture, tracciamento dei clic, codifica dei link). L'utilizzo delle copie di Archivio garantisce che la vostra versione salvata corrisponda esattamente a ciò che i destinatari ricevono.
SparkPost archivia automaticamente le email?
No. SparkPost non memorizza i corpi dei messaggi. Le copie archiviate devono essere richieste specificando gli indirizzi dell'archivio durante l'iniezione SMTP.
Cosa viene archiviato dove in questo sistema di archiviazione?
Email body → Amazon S3
Registri degli eventi di messaggio → MySQL
Questa separazione supporta la ricerca veloce, le query strutturate e lo storage degli oggetti a basso costo.
Per quanto tempo SparkPost conserva i dati degli eventi?
SparkPost memorizza gli eventi dei messaggi per 10 giorni. Dopo questo periodo, i dati devono essere acquisiti tramite webhook o interrogati e archiviati altrove.
Quali eventi di messaggi sono disponibili?
Attualmente SparkPost espone 14 eventi, inclusi consegne, rimbalzi, clic, aperture, rifiuti, problemi di policy, reclami di spam, cancellazioni e altro.
Quali identificatori uniscono tutti gli eventi?
Tutti i messaggi in uscita (originale, archivio, CC, BCC) condividono lo stesso transmission_id. L'email originale e di archivio condividono anche lo stesso message_id.
Perché il processamento inbound è una sfida?
Il Relay Email Inbound di SparkPost converte l'email in arrivo in JSON, ma questo JSON non include transmission_id. Senza dati aggiuntivi, la copia in entrata non può essere collegata alla sua cronologia di log in uscita.
Come si collegano le email d'archivio inbound agli eventi di messaggi outbound?
Incorpora un identificatore unico (UID) nascosto nel corpo dell'email e passa lo stesso UID nei metadati. Questo UID diventa il riferimento condiviso tra i record in entrata e in uscita.
Come aiuta Inbound Email Relay ad automatizzare l'archiviazione?
Riceve le email archiviate inviate al tuo dominio di archiviazione, le analizza in JSON strutturato e le invia alla tua applicazione tramite webhook—consentendo l'estrazione e la conservazione automatica.
Qual è la visione a lungo termine del progetto?
Un'applicazione completa che:
Archivia le email in S3
Memorizza tutti i log degli eventi in MySQL
Permette agli utenti di cercare le email
Mostra l'email originale e ogni evento associato in un'interfaccia unificata





