2009-10-05 109 views
2

一年前Mitchel Sellers有一個related的問題....NET Framework中的IMAP支持在哪裏?

我想訪問谷歌IMAP發送和接收我的自定義應用程序中的電子郵件。

問題是我不想使用任何第三方控件。

.Net Framework的較新版本支持IMAP?我有什麼選擇?

+1

和這裏http://stackoverflow.com/questions/670183/accessing-imap-in-c和這裏http://stackoverflow.com/questions/545724/using-c-net-librarires-to-check- for-imap-messages-from-gmail-servers,但仍然是相同的答案 – Will 2009-10-05 13:42:12

+0

@Will還有萬維網,因爲SO – OrElse 2009-10-05 13:47:51

回答

0

沒有.NET框架支持IMAP。你需要使用一些第三方組件。

嘗試Mail.dll email component,這是非常經濟實惠,易於使用:

using(Imap imap = new Imap()) 
{ 
    imap.Connect("imapServer"); 
    imap.Login("user", "password"); 

    imap.SelectInbox(); 
    List<long> uids = imap.SearchFlag(Flag.Unseen); 
    foreach (long uid in uids) 
    { 
     string eml = imap.GetMessageByUID(uid); 
     IMail message = new MailBuilder() 
      .CreateFromEml(eml); 

     Console.WriteLine(message.Subject); 
     Console.WriteLine(message.TextDataString); 
    } 
    imap.Close(true); 
} 

您可以在這裏下載:http://www.lesnikowski.com/mail/

+0

我已經切換到Ubuntu以備將來的發展。有沒有辦法讓這個庫在Linux上與C#Mono一起工作或使用Vala編程語言? – 2014-07-13 23:44:04

-2

在當前版本的.NET中沒有IMAP支持,我還沒有聽說過有任何計劃將這種支持添加到框架中。您必須嘗試第三方組件之一。

您可以查看我們的Rebex Secure Mail

下面的代碼演示如何從Inbox文件夾下載郵件:

// create client, connect and log in 
Imap client = new Imap(); 
client.Connect("imap.example.org"); 
client.Login("username", "password"); 

// select folder 
client.SelectFolder("Inbox"); 

// get message list 
ImapMessageCollection list = client.GetMessageList(ImapListFields.Fast); 

if (list.Count == 0) 
{ 
    Console.WriteLine("There are no messages in the mailbox."); 
} 
else 
{ 
    // download the first message 
    MailMessage message = client.GetMailMessage(list[0].SequenceNumber); 
    ... 
} 

試用可以從www.rebex.net/secure-mail.net/

下載,您還可以享受Rebex Q&A forum運行在類似引擎這個網站。