陽 紅,郭 棟
(中國電子科技集團公司第三十研究所,四川 成都 610041)
電子郵件一直都是互聯(lián)網(wǎng)最重要的應用之一,且其以快速、方便、廉價的特點,成為越來越多的人的最重要數(shù)據(jù)通信手段。隨著電子郵件技術的發(fā)展,郵件已經(jīng)成為人們生活中不可或缺的互聯(lián)網(wǎng)應用。傳統(tǒng)的郵件收發(fā)方式已經(jīng)無法滿足人們日益增長的需求,尤其是商務人士、市場營銷人員以及各類專業(yè)人士。如今,網(wǎng)絡營銷競爭日趨激烈,通過郵件進行網(wǎng)絡營銷的方式是否能達到預期效果,營銷人員對郵件是否發(fā)送成功、發(fā)送成功率、閱讀率等數(shù)據(jù)更加關注。郵件推送與跟蹤統(tǒng)計系統(tǒng)向用戶提供了一個集大規(guī)模推送、郵件跟蹤、統(tǒng)計分析、效果呈現(xiàn)等多功能于一體的推送平臺。
用戶發(fā)送郵件通常通過Web瀏覽器、客戶端等方式,模擬瀏覽器或用戶前臺操作難以達到大規(guī)模推送的效果,以固本系統(tǒng)模擬郵件發(fā)送的后臺操作。
系統(tǒng)包含兩個子系統(tǒng):郵件推送子系統(tǒng)和跟蹤統(tǒng)計子系統(tǒng)。系統(tǒng)采用標準SMTP協(xié)議,向目標郵件服務器大規(guī)模推送嵌入了跟蹤[1]插件的郵件。郵件終端包含平板電腦、筆記本電腦、PC機、手機移動終端等,通過POP3協(xié)議下載郵件。當用戶打開郵件時,郵件跟蹤插件通過HTTP協(xié)議訪問本系統(tǒng),將搜集的數(shù)據(jù)信息返回給本系統(tǒng)。系統(tǒng)通過用戶返回的數(shù)據(jù)進行分析統(tǒng)計形成各類圖表,推送者可通過跟蹤統(tǒng)計操作終端進行查看。系統(tǒng)的網(wǎng)絡結構如圖1所示。
圖1 系統(tǒng)的網(wǎng)絡結構
郵件推送系統(tǒng)可獨立運行進行大規(guī)模郵件推送,也可與跟蹤統(tǒng)計系統(tǒng)聯(lián)合完成推送郵件的跟蹤統(tǒng)計。系統(tǒng)間通過Apache Thrift[2]進行實時通信,保障系統(tǒng)間數(shù)據(jù)的傳輸速率。服務器包含推送采集服務器和數(shù)據(jù)庫服務器,通過有線和無線方式接入互聯(lián)網(wǎng)。
Apache Thrift是一個服務端和客戶端的架構體系。Thrift具有自己內部定義的傳輸協(xié)議規(guī)范(TProtocol)和傳輸數(shù)據(jù)標準(TTransports),實際上實現(xiàn)了C/S模式,即通過代碼生成工具將接口定義文件生成服務器端和客戶端代碼(可以為不同語言),從而實現(xiàn)服務端和客戶端的跨語言支持。本系統(tǒng)使用ApacheThrift作為內容通信的橋梁,將郵件推送系統(tǒng)與跟蹤統(tǒng)計系統(tǒng)之間的數(shù)據(jù)交互作為內容數(shù)據(jù)進行傳輸。系統(tǒng)在Thrift描述文件中聲明自己的服務,這些服務經(jīng)過編譯后會生成相應語言的代碼文件,然后實現(xiàn)服務(客戶端調用服務,服務器端提服務)即可。
圖2描繪了Thrift的整體架構[3]。
圖2 ApacheThrift系統(tǒng)架構
系統(tǒng)分為6個部分:業(yè)務邏輯實現(xiàn)、客戶端和服務端對應的Service、執(zhí)行讀寫操作的計算結果、TProtocol、TTransports和底層I/O通信。
本文針對郵件業(yè)務的特征,構建了郵件推送與跟蹤統(tǒng)計系統(tǒng)的架構模型,并通過郵件的自動登錄、自動發(fā)送、跟蹤、統(tǒng)計等技術,為郵件的大規(guī)模推送及推送效果評估提供技術支撐。郵件推送與跟蹤統(tǒng)計系統(tǒng)的工作流程如圖3所示。
圖3 系統(tǒng)的工作流程
①用戶輸入或批量導入目的郵箱,或通過系統(tǒng)自動采集郵箱賬號信息,自動生成目的郵箱列表;②用戶輸入或批量導入發(fā)送源郵箱信息,自動生成源郵箱列表;③用戶輸入或批量導入發(fā)送內容,自動生成發(fā)送內容列表;④通過內部通信機制,添加跟蹤插件;⑤對發(fā)布的郵件進行跟蹤監(jiān)控,對郵箱成功率、閱讀率、點擊次數(shù)等數(shù)據(jù)進行動態(tài)統(tǒng)計;⑥分析結果呈現(xiàn)。
郵件推送和跟蹤統(tǒng)計系統(tǒng)運行于WINDOWS操作系統(tǒng)。郵件推送和跟蹤統(tǒng)計是本系統(tǒng)的核心組成,分別部署在郵件推送子系統(tǒng)和跟蹤統(tǒng)計子系統(tǒng)內。系統(tǒng)總體框架以基礎硬件軟件平臺、系統(tǒng)服務組件為依托,構建以郵件推送和跟蹤統(tǒng)計為核心,以數(shù)據(jù)庫服務、各類協(xié)議以及友好的人機界面等表現(xiàn)手段的網(wǎng)格化體系。系統(tǒng)總體框架劃分為基礎平臺層、服務層、應用層和表示層四個層面,其中系統(tǒng)軟件架構如圖4所示。
圖4 系統(tǒng)軟件架構
本系統(tǒng)還搭建了一個高效可行的數(shù)據(jù)采集平臺。從數(shù)據(jù)管理和數(shù)據(jù)訪問效率的角度出發(fā),在系統(tǒng)中引入數(shù)據(jù)倉庫[3]的概念。其中,通過數(shù)據(jù)倉庫對系統(tǒng)采集的數(shù)據(jù)做統(tǒng)一、集中的管理、處理和存儲。它是所有原始數(shù)據(jù)的集中地,也是所有加工數(shù)據(jù)的提供者。系統(tǒng)數(shù)據(jù)架構如圖5所示。
圖5 系統(tǒng)數(shù)據(jù)架構
數(shù)據(jù)的總體架構可以分成憑證數(shù)據(jù)的產(chǎn)生(數(shù)據(jù)來源)、數(shù)據(jù)的集中及加工地(數(shù)據(jù)倉庫)以及最終數(shù)據(jù)的表現(xiàn)(數(shù)據(jù)呈現(xiàn))。
郵件推送子系統(tǒng)主要完成郵件的大規(guī)模推送,其中包含郵箱賬號管理、推送內容管理、郵箱地址采集、大規(guī)模推送以及內部通信等單元,如圖6所示。
圖6 郵件推送子系統(tǒng)組成
郵箱地址管理單元實現(xiàn)發(fā)件源郵箱、目的郵箱的設置;推送內容管理單元實現(xiàn)郵件內容的添加編輯,附件的添加等;大規(guī)模推送單元實現(xiàn)郵 件的大規(guī)模自動發(fā)送;內部通信模塊采用Apache Thrift客戶端,向跟蹤統(tǒng)計模塊發(fā)送郵件信息。同時,郵件推送子系統(tǒng)還提供郵箱地址采集單元,實現(xiàn)郵箱地址的實時采集與索引。
郵箱地址采集單元采用網(wǎng)絡爬蟲獲取基礎數(shù)據(jù),通過數(shù)據(jù)分析與處理,采用正則表達式“/^(w)+(.w+)*@(w)+((.w+)+)$/;”從數(shù)據(jù)中分析出郵箱地址[4]。下面是一段實現(xiàn)的郵箱地址自動匹配的代碼:
function checkEmail()
{
var emailValue=document. getElementById_r("email").value;
if (!isEmail(emailValue))
{
turn false;
}
return true;
}
function isEmail(str)
{
var re =/^(w)+(.w+)*@(w)+((.w+)+)$/;
return reg.test(str);
}
郵箱地址采集單元能為郵件系統(tǒng)推送提供目標郵箱地址,通過地址的批量導入功能,實現(xiàn)自動化目標郵箱的地址添加。
跟蹤統(tǒng)計子系統(tǒng)主要完成數(shù)據(jù)的跟蹤與分析統(tǒng)計功能,包含數(shù)據(jù)采集單元、數(shù)據(jù)分析單元、數(shù)據(jù)呈現(xiàn)單元以及內部通信單元。跟蹤統(tǒng)計子系統(tǒng)采用Winpcap[5]構架,在郵件推送子系統(tǒng)進行信息推送,通過從網(wǎng)絡上抓取數(shù)據(jù)包,獲取郵件發(fā)送的實時數(shù)據(jù);通過數(shù)據(jù)的分析整合,最終向數(shù)據(jù)呈現(xiàn)模塊提供原始數(shù)據(jù),以供數(shù)據(jù)呈現(xiàn)模塊實時呈現(xiàn)。內部通信模塊采用Apache Thrift架構,部署為服務端,通過郵件子系統(tǒng)的客戶端連接申請,接收來自郵件子系統(tǒng)的數(shù)據(jù),輔助完成數(shù)據(jù)的實時采集與匯總。
系統(tǒng)通過在html格式郵件中嵌入跟蹤插件來實現(xiàn)用戶端數(shù)據(jù)隱匿采集。跟蹤統(tǒng)計子系統(tǒng)的系統(tǒng)組成如圖7所示。
圖7 跟蹤統(tǒng)計子系統(tǒng)組成
跟蹤統(tǒng)計子系統(tǒng)將數(shù)據(jù)分析匯總,分析統(tǒng)計的數(shù)據(jù)包括發(fā)送結果、閱讀結果。通過基礎數(shù)據(jù)的分析,最終得出發(fā)送成功率、發(fā)送失敗率、閱讀率等信息,并最終以圖表的形式展現(xiàn),包含柱狀圖、餅狀圖等,如圖8所示。
圖8 統(tǒng)計效果呈現(xiàn)
系統(tǒng)內部信息交互圖如圖9所示。
圖9 系統(tǒng)內部信息交互圖
系統(tǒng)外部接口包括郵件推送系統(tǒng)與互聯(lián)網(wǎng)接口和跟蹤統(tǒng)計子系統(tǒng)與互聯(lián)網(wǎng)接口。內部接口包括郵件推送系統(tǒng)與跟蹤統(tǒng)計子系統(tǒng)之間的接口。
系統(tǒng)內外部接口詳細說明如表1所示。
表1 系統(tǒng)內外部接口說明
郵件推送與跟蹤統(tǒng)計系統(tǒng)通過標準SMTP協(xié)議實現(xiàn)郵件的信息推送,基于Apache Thrift實現(xiàn)系統(tǒng)內部的數(shù)據(jù)交換,保證了內部數(shù)據(jù)的高效準確傳遞。同時,結合網(wǎng)絡爬蟲、Winpcap架構等,構建了低成本、高效率、高準確度的郵件推送與跟蹤統(tǒng)計系統(tǒng)。實踐表明,該系統(tǒng)構架合理,內部通信機制技術成熟可靠,可為同類系統(tǒng)的設計提供參考。