簡體   English   中英

從SMTP服務器發送的電子郵件的設計跟蹤

[英]Design Tracking of Emails sent from SMTP server

我正在嘗試設計一種向用戶發送電子郵件的服務。 該服務與Amazon SES非常相似。

要求之一是跟蹤該系統將發送的所有電子郵件。 我對如何設計此解決方案感到困惑,以便我可以維護與發送電子郵件的父用戶(在發送電子郵件時已知)發送的電子郵件。

如果我開始將所有與電子郵件相關的數據轉儲到關系數據庫中,它將在一段時間內成倍增長,並且會帶來很多問題。 同樣,如果我將這些東西存儲在Cassandra中,它會快速增長並造成問題。

需要存儲此信息:-

1)將來需要知道是否將電子郵件發送給特定用戶以及何時發送。

2)如果反饋循環創建了投訴郵件,我將需要將其映射回特定的電子郵件ID(將出現在投訴電子郵件中)和發送郵件的父用戶(將在發送電子郵件時存儲)。

有人可以幫我指點一下如何實現此目的的方式來存儲或創建一些緩存。

它不太可能“成倍增長”。 似乎它將線性增長。 無論如何,如果您需要查找將誰發送給誰的功能,那么您別無選擇,只能存儲它。

您需要做的是估計每天發送多少電子郵件,以及每封電子郵件需要保存多少數據。 進行數學運算,並確定您希望每天生成多少數據。 然后至少您可以弄清楚數據庫隨着時間的推移會變大。

您還需要考慮如何對數據建立索引。 似乎您至少需要通過電子郵件ID進行索引。 您可能還希望按發件人索引,也可能按收件人索引。 這些索引將創建其他按電子郵件存儲數據的要求。 您必須通過分析確定多少。

很難確定每封電子郵件將占用多少實際磁盤空間。 如果消息很短,則在關系數據庫中,每千兆字節可能會收到超過一百萬封電子郵件。 如果您壓縮消息數據或應用其他利用消息相似性的技術,則可能會做得更好。 例如,如果您向一千個收件人發送完全相同的郵件,則可以存儲該郵件的單個副本,而僅在單個電子郵件記錄中存儲對該郵件的引用。

您可能還需要考慮將每條消息存儲多長時間。 您需要永久存儲所有內容,還是可以定期刪除所有超過一年(或其他相對較長時間)的郵件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM