歡迎您光臨本站 註冊首頁

如何用客戶端程序(exe的)判斷qmail伺服器的未讀郵件數量

求助各位高手:

小弟目前在用Delphi寫一個後綴為exe的小程序,類似QQ。現想獲取qmail伺服器的未讀郵件數量,卻不知道如何實現,哪位老大知道的,請指點一下,萬分感謝!
《解決方案》

先學習一下pop3 協議, 不難.
《解決方案》

通過pop3無法獲得未讀郵件,因為通過pop3無法獲取用戶maildir中的cur文件夾和new文件夾的郵件信息

foxmail等客戶端軟體在收取郵件的時候,會把收取過的郵件的uid記錄在一個文件中,下一次收取的時候,通過對比伺服器上所有郵件的uid(通過pop過程中的UIDL命令獲得伺服器上所有郵件的uid),找出那些是新的郵件(客戶端軟體沒有收過的郵件)

[ 本帖最後由 sosogh 於 2008-11-20 22:46 編輯 ]
《解決方案》

原帖由 leo4364088 於 2008-11-20 17:24 發表 http://bbs3.chinaunix.net/images/common/back.gif
求助各位高手:

小弟目前在用Delphi寫一個後綴為exe的小程序,類似QQ。現想獲取qmail伺服器的未讀郵件數量,卻不知道如何實現,哪位老大知道的,請指點一下,萬分感謝!
Maildir目錄中new下面的就是未讀郵件
《解決方案》

如果能控制伺服器應該有辦法吧,qmail我不熟,不過用plugin或shell之類的應該可以的
《解決方案》

原帖由 sosogh 於 2008-11-20 22:40 發表 http://bbs.chinaunix.net/images/common/back.gif
通過pop3無法獲得未讀郵件,因為通過pop3無法獲取用戶maildir中的cur文件夾和new文件夾的郵件信息

foxmail等客戶端軟體在收取郵件的時候,會把收取過的郵件的uid記錄在一個文件中,下一次收取的時候,通過對 ...

正解,我現在就是只能獲取收件箱內郵件的總數量,而不能只獲取未讀郵件的數量;也沒有許可權直接去讀取 Maildir/new 的文件數量。

而因為功能需求問題,我又不能像OutLook那樣直接收取郵件,我的思路是這樣的:

客戶端程序每次登錄的時候,先讀取郵件的uid,保存在本地;下次登錄時,判斷郵箱內郵件的uid是否有新的,若有則為未讀郵件;

但是這樣有個問題,若用戶在webmail上打開一封uid未被本地記錄的郵件,此時它將變成已讀狀態,但下次用客戶端登錄的時候,仍會將其判斷為未讀狀態。所以目前問題仍未得到解決。

[ 本帖最後由 leo4364088 於 2008-11-21 13:08 編輯 ]
《解決方案》

沒有人肯幫忙嗎?
《解決方案》

這個事情是 IMAP 協議可以做到的。
未讀郵件都帶有「未讀」的 flag。
《解決方案》

恩,謝謝MichaelBibby老大,我研究一下IMAP 協議。
《解決方案》

pop3和imap讀取郵件方式的區別

最後結論:
讀取未讀郵件數量的確不能用pop3協議來實現,因為它是將郵件信息收到本地;而imap則讀取伺服器上的郵件信息,能夠實現本帖的功能。

[火星人 ] 如何用客戶端程序(exe的)判斷qmail伺服器的未讀郵件數量已經有196次圍觀

http://coctec.com/docs/service/show-post-26049.html