Budowanie systemu archiwizacji e-maili: wyzwania i oczywiście rozwiązanie – Część 1
Jeff Goldstein
4 lut 2019
1 min read

Najważniejsze informacje
Archiwizowanie e-maili jest coraz bardziej istotne w środowiskach regulacyjnych, zgodności i audytu.
SparkPost nie przechowuje treści e-maili, ale jego funkcja archiwizacji pozwala nadawcom otrzymywać powielone wiadomości, które odzwierciedlają linki śledzące i treść.
Treści e-maili mogą być przechowywane w Amazon S3, podczas gdy metadane zdarzeń wiadomości mogą być przechowywane w MySQL do zapytań i krzyżowego odniesienia.
Zdarzenia wiadomości SparkPost dostarczają bogate dzienniki aktywności (odrzuty, dostarczenia, kliknięcia, otwarcia, wypisania, skargi i inne).
Kopie archiwalne są generowane tylko podczas wysyłania wiadomości przez SMTP.
Zdarzenia wiadomości dla oryginalnych, archiwalnych, CC i BCC e-maili dzielą wspólny transmission_id.
Inbound Email Relay może przyjmować archiwalne wiadomości, ale nie zawiera transmission_id, co stwarza wyzwanie związane z powiązaniem danych.
Osadzenie ukrytego unikalnego identyfikatora (UID) w treści wiadomości zamyka tę lukę i łączy treść przychodzącą z dziennikami wychodzącymi.
Łączenie archiwalnych e-maili z zdarzeniami wiadomości umożliwia budowanie systemu archiwizacji, który można przeszukiwać i audytować.
Projekt długoterminowy obejmuje wydania kodu do przechowywania archiwalnych wiadomości w S3 i rejestrowania danych zdarzeń w MySQL.
Ostateczna aplikacja umożliwi łatwe przeszukiwanie, przeglądanie i uzgadnianie treści e-maili ze wszystkimi związanymi z nimi historiami zdarzeń.
Idealne dla branż z dużymi wymaganiami w zakresie zgodności, które potrzebują pełnej widoczności każdej wysłanej wiadomości.
Podsumowanie pytań i odpowiedzi
Dlaczego zbudować własny system archiwizacji e-maili?
Regulowane branże często wymagają długoterminowego przechowywania zarówno treści e-maila, jak i wszystkich związanych z nim dzienników zdarzeń. SparkPost nie przechowuje treści wiadomości, więc zbudowanie niestandardowego systemu zapewnia zgodność, audytowanie i widoczność.
Jak uzyskać dokładną kopię oryginalnie wysłanej wiadomości e-mail?
Funkcja Archiwum w SparkPost wysyła duplikat każdego wychodzącego e-maila na wskazane adresy archiwum, zachowując wszystkie zakodowane linki i zachowania śledzenia.
Dlaczego nie możesz przechwycić treści e-maila przed wysłaniem?
Przechwytywanie przed wysłaniem nie obejmuje modyfikacji SparkPost (śledzenie otwarć, śledzenie kliknięć, kodowanie linków). Użycie kopii archiwalnych zapewnia, że zapisany przez Ciebie dokument dokładnie odpowiada temu, co otrzymują odbiorcy.
Czy SparkPost archiwizuje e-maile automatycznie?
Nie. SparkPost nie przechowuje treści wiadomości. Archiwalne kopie muszą być żądane poprzez określenie adresów archiwum podczas wstrzykiwania SMTP.
Co jest przechowywane gdzie w tym systemie archiwizacji?
Treść e-maila → Amazon S3
Rejestry zdarzeń wiadomości → MySQL
To rozdzielenie wspiera szybkie wyszukiwanie, zorganizowane zapytania i niedrogie przechowywanie obiektów.
Jak długo SparkPost przechowuje dane o zdarzeniach?
SparkPost przechowuje zdarzenia wiadomości przez 10 dni. Po tym czasie dane muszą być przetwarzane przez webhook lub zapytane i przechowywane gdzie indziej.
Jakie zdarzenia wiadomości są dostępne?
SparkPost obecnie udostępnia 14 zdarzeń, w tym dostawy, odrzuty, kliknięcia, otwarcia, odrzucenia, problemy z polityką, skargi na spam, wypisy, i inne.
Jakie identyfikatory łączą wszystkie wydarzenia?
Wszystkie wychodzące wiadomości (oryginał, archiwum, CC, BCC) mają ten sam transmission_id. Oryginalny i archiwalny e-mail mają również ten sam message_id.
Dlaczego przetwarzanie przychodzące stanowi wyzwanie?
Relay e-mail przychodzący SparkPost zamienia e-mail przychodzący na JSON, ale ten JSON nie zawiera transmission_id. Bez dodatkowych danych, przychodząca kopia nie może być powiązana z historią logów wychodzących.
Jak połączyć przychodzące e-maile z archiwum z wydarzeniami wiadomości wychodzących?
Osadź ukryty unikalny identyfikator (UID) w treści e-maila i prześlij ten sam UID w metadanych. Ten UID staje się wspólnym odniesieniem między rekordami przychodzącymi a wychodzącymi.
W jaki sposób przekazywanie e-maili przychodzących pomaga w automatyzacji archiwizacji?
Odbiera archiwalne e-maile wysyłane na twoją archiwalną domenę, analizuje je na uporządkowany JSON i przesyła do twojej aplikacji za pomocą webhooka – umożliwiając automatyczne wydobywanie i przechowywanie.
Jaka jest długoterminowa wizja projektu?
Kompletna aplikacja, która:
Przechowuje archiwalne e-maile w S3
Przechowuje wszystkie logi zdarzeń w MySQL
Umożliwia użytkownikom wyszukiwanie e-maili
Wyświetla oryginalny e-mail oraz wszystkie powiązane zdarzenia w jednym zintegrowanym interfejsie





