2010-06-14 24 views
3

我想要一個免費的.NET庫來通過imap4(不需要)從帳戶(例如gMail或其他)獲取附件,並將它們保存在一個文件夾中。從.NET的郵件帳戶獲取附件

理想情況下,它可以讓我得到它們的列表,並且只下載一些給定的(按擴展名,名稱和/或大小過濾)並且是免費的。

我已經用EAGetMail的試用版完成了這項工作,但爲了嘗試購買此庫的無限制版本的目的不太合適(我不知道這個功能本身是時間有限的人之一)。

--- [編輯 - 樋口] ---

我用下面的代碼:

Dim cl As New Pop3Client() 
     cl.UserName = "[email protected]" 
     cl.Password = "mypassword" 
     cl.ServerName = "pop.gmail.com" 
     cl.AuthenticateMode = Pop3AuthenticateMode.Pop 
     cl.Ssl = False 
     cl.Authenticate() //takes a while, but passes even if there's a wrong password 

     Dim mg As Pop3Message = cl.GetMessage(1) //gives me an exception: Message = "Pop3 connection is closed" 

UPDATE:端口設置爲995給了我一個 「響應超時」 異常

正如已評論的,我在嘗試連接並獲取第一封電子郵件時遇到了一些問題。任何幫助?

回答

5

嗯,我知道你指定IMAP4,但我想我會的情況下,POP3有所表示,這是一個選項,因爲它是有用的對我來說:

http://csharpmail.codeplex.com/

該庫提供了POP3訪問除了較新的IMAP之外,許多電子郵件服務(包括Gmail)都提供這種服務。

核心類是Pop3Client,它提供了諸如ExecuteListExecuteTop等我已經使用這個專門爲你是問什麼POP3功能的訪問 - 掃描和下載附件。

如果你決定這是你可以使用的東西,需要進一步的指導,讓我知道。

UPDATE:在回答你的更新問題,我只是一些初步建議:

  1. 考慮Pop3Client.Port屬性設置爲995。我知道這是什麼Gmail使用的POP3。
  2. Pop3Client.Authenticate方法返回一個bool值,指示驗證是否成功。您可以在調用方法後檢查該值,以確定是否可以繼續前進。

更新2:我想這個在家裏使用以下設置和它的工作對我來說:

Using client As New Pop3Client 
    client.UserName = "[email protected]" 
    client.Password = "[insert password here]" 
    client.ServerName = "pop.gmail.com" 
    client.AuthenticateMode = Pop3AuthenticateMode.Pop 
    client.Ssl = True ' NOTICE: in your example code you have False here ' 
    client.Port = 995 
    client.Authenticate() 

    Dim messageList = client.ExecuteList() 
    Console.WriteLine("# Messages: {0}", messageList.Count) 
End Using 

嘗試這些設置,看看他們是否爲你工作。

UPDATE 3:還有一件事!您是否確定要爲您的Gmail帳戶啓用POP?如果不是,你需要這樣做!

  1. 在您的Gmail收件箱中,點擊「設置」(右上角)。
  2. 在「設置」頁面中,單擊標籤爲「轉發和POP/IMAP」的選項卡。
  3. 在POP下載部分,選擇一個單選按鈕以啓用POP郵件。
  4. 點擊底部的「保存更改」。
+0

事實上,我只是指出它需要成爲IMAP,因爲這是我一直在努力的,而且我聽說它有更多的功能(這可能會允許進一步的開發),但現在你已經提到對於這個特定的功能POP3已經足夠了,我一定會看看它!再次感謝你,如果明天我需要幫助,我會很高興(我即將離開)。 – Marcelo 2010-06-14 20:03:59

+0

我已經編輯了我的問題,但遇到了一些麻煩,請檢查一下嗎? – Marcelo 2010-06-15 17:33:14

+0

@MarceloRamires:我用一些小建議更新了我的答案。不過,我不知道他們對你有多大的幫助。在今晚或明天晚些時候,我可能會以更實質的方式提供幫助(首先通過對自己發佈的代碼進行故障排除)。 – 2010-06-15 17:39:57

相關問題