使用.NET从邮件帐户获取附件

Mar*_*elo 3 .net c# vb.net email attachment

我想要一个免费的.NET库来通过imap4(不是必须)从帐户(例如gMail或其他人)获取附件,并将它们保存在一个文件夹中.

理想情况下,它允许我获取它们的列表,并仅下载一些给定的(按扩展名,名称和/或大小过滤)并且是免费的.

我已经用EAGetMail的试用版完成了这个,但是为了我想要尝试购买这个库的无限版本的目的不太合适(我不知道这个功能本身就是其中之一)那些时间有限的人).

--- [编辑 - Hig口] ---

我正在使用以下代码:

Dim cl As New Pop3Client()
        cl.UserName = "marcelo.f.ramires@gmail.com"
        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"
Run Code Online (Sandbox Code Playgroud)

更新:将端口设置为995给我一个"响应TimeOut"异常

如评论所述,我在尝试连接并获取第一封电子邮件时遇到了一些问题.任何帮助?

Dan*_*Tao 5

好吧,我知道你指定了IMAP4,但我想我会提供这个,以防POP3是一个选项,因为它对我有用:

http://csharpmail.codeplex.com/

此库提供对POP3邮件的访问,除了较新的IMAP之外,许多电子邮件服务(包括Gmail)都提供这些邮件.

核心类是Pop3Client,它提供了访问POP3功能,如ExecuteList,ExecuteTop等我已经使用这个专门为你是问怎么样-扫描和下载附件.

如果你认为这是你可以使用的东西,需要进一步的指导,请告诉我.

更新:在回答您更新的问题时,我只提出了一些初步建议:

  1. 考虑将该Pop3Client.Port属性设置为995.我知道这是Gmail用于POP3的内容.
  2. Pop3Client.Authenticate方法返回一个bool值,指示验证是否成功.您可以在调用方法后检查此值,以了解是否可以进一步进展.

更新2:我在家里尝试了以下设置,它对我有用:

Using client As New Pop3Client
    client.UserName = "username@gmail.com"
    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
Run Code Online (Sandbox Code Playgroud)

尝试这些设置,看看它们是否适合您.

更新3:还有一件事!您确定为Gmail帐户启用了POP吗?如果没有,你需要这样做!

  1. 在Gmail收件箱中,点击"设置"(右上角).
  2. 在"设置"页面中,单击标记为"转发和POP/IMAP"的选项卡.
  3. 在"POP下载"部分中,选择一个单选按钮以启用POP邮件.
  4. 点击底部的"保存更改".