webmail開發(fā)小記
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
八月底開始著手做webmail的時候想從網(wǎng)上搜些信息參考,能找到的基本都是介紹javamail的api,幾乎找不到什么開發(fā)webmail思路的資料。目前我們的項目已經(jīng)到了收尾階段,也比較閑,我想總結一下我的思路,與同學們共同學習。
我們郵件服務器用的是開源的james,由于當前版本不支持imap所以只能用pop3協(xié)議。使用pop3協(xié)議在開發(fā)上會帶來很多麻煩,比如pop3服務器只有inbox文件夾、不能為郵件加標簽等,這些問題我是這樣考慮的,先從服務器上收郵件,把郵件主要的頭信息和相關信息存數(shù)據(jù)庫,如:郵箱地址、標題、大小、是否已讀、發(fā)件人等等;郵件存本地硬盤,只有讀某封郵件的時候再從硬盤上讀(類似上傳附件的思路),當然也可以存數(shù)據(jù)庫,不過如果郵件很大這張表就太恐怖了。 這樣做每次收郵件都會從服務器上刪除已收到的,沒有解決的問題是如何不從服務器上刪除而又不會每次收都收到重復的,百思不得其解,時間關系也沒有再仔細研究。 webmail部分的郵件過濾其實很簡單,因為規(guī)則是用戶訂的,可以允許客戶匹配標題、發(fā)件人、內(nèi)容等等。接收郵件的同時匹配一下,如果符合過濾規(guī)則把記錄的狀態(tài)改成垃圾郵件箱或拒收就是了。阻止發(fā)件人的功能也是這么做的,其實郵件服務器上還是收到了這封郵件,只不過沒有收到webmail里。 別的好像也沒有什么好說的,不是說開發(fā)過程中沒有遇到什么問題,相反,我們不斷碰到問題解決問題,不過沒有多少太深刻的,很多朋友可能對解析郵件比較頭大,我說一下我的思路,也歡迎大家一起討論 郵件的結構如下圖所示,如果能吃透這張圖,解析起來就明朗多了。我們要做的是判斷part是什么類型
這里每步解析都可能會拋異常,那也沒辦法,不與理睬,不過一封正常的郵件應該沒什么問題 該文章在 2010/8/4 19:04:08 編輯過 |
關鍵字查詢
相關文章
正在查詢... |