我正在尋找一種方法來監控新的電子郵件GMail收件箱。但是,我想避免每隔幾分鐘檢查一次,我正在尋找某種實時通知。我注意到Outlook(以及其他支持IMAP的客戶端)會在有新電子郵件時立即顯示,但不幸的是,所有.NET IMAP庫似乎都缺少此功能。尋找新的電子郵件實時IMAP通知
有誰知道具有此功能的IMAP庫?或者還有另一種方式可以在不進行短期輪詢的情況下即時通知新消息?
我正在尋找一種方法來監控新的電子郵件GMail收件箱。但是,我想避免每隔幾分鐘檢查一次,我正在尋找某種實時通知。我注意到Outlook(以及其他支持IMAP的客戶端)會在有新電子郵件時立即顯示,但不幸的是,所有.NET IMAP庫似乎都缺少此功能。尋找新的電子郵件實時IMAP通知
有誰知道具有此功能的IMAP庫?或者還有另一種方式可以在不進行短期輪詢的情況下即時通知新消息?
您需要處理IMAP IDLE。
這將通知你新消息到達時,沒有不斷的輪詢(這是壞的)。
一個非常好的商業.NET IMAP庫是MailBee.Net。我之前把它用於一個小型項目,它似乎處理得很好,並且相當容易處理。可能還有其他的 - 只需在你的庫中搜索發送IDLE命令或IDLE命令處理,你就可能找到一些東西。
Mail.dll支持IDLE。 下面是簡單的例子:
using (Imap client = new Imap())
{
client.ConnectSSL("imap.server.com");
client.Login("[email protected]", "password");
FolderStatus folderStatus = client.SelectInbox();
Console.WriteLine("Total message count: {0}",
folderStatus.MessageCount);
while(true)
{
FolderStatus currentStatus = client.Idle();
Console.WriteLine("Total message count: {0}",
currentStatus.MessageCount);
foreach(long uid in client.SearchFlag(Flag.Unseen))
{
IMail email = new MailBuilder().CreateFromEml(
client.GetHeadersByUID(uid));
Console.WriteLine(email.Subject);
}
}
client.Close();
}
您可以在以下網址下載Mail.dll:http://www.lesnikowski.com/mail/
也請參閱我blog for samples。
請注意Mail.dll是我創建的商業產品。
@Queops
下面是2臺在線殺毒掃描儀報道:
請注意,VirusTotal是使用Symantec掃描儀。
嘗試免費的.NET庫訪問IMAP服務器S22.Imap,與IDLE支持
使用(var client = new ImapClient(「imap.gmail.com」,993,「username」,「password」,AuthMethod.Login,true)) var uids = client.Search(SearchCondition.Unseen()) ; var messages = client.GetMessages(uids); } – 2017-01-03 22:51:49
我試圖下載Mail.dll但我的諾頓殺毒軟件的安裝程序馬上說這是某種病毒/威脅,並立刻將其刪除。建議謹慎。 – Qosmo 2010-10-24 01:02:13
「某種」?你能更精確嗎?我一直在使用這個組件很長一段時間,從我的角度來看,一切都很好。如果我是對的,它也被大公司使用。 – 2010-10-27 14:33:33