C# 通过编程在任何邮件服务器上下载邮件附件

C# 通过编程在任何邮件服务器上下载邮件附件,c#,.net,email,C#,.net,Email,我试图实现的是通过代码从Gmail、Yahoo或任何其他服务器下载特定类型的邮件附件。有没有可能或者有没有关于这方面的想法会有很大帮助您需要IMAP来完成这项工作。你需要先阅读邮件的MIME格式。然后,您可以轻松下载附件(如果有) 在POP中,没有规定知道邮件中是否有附件。在POP中,您需要在本地下载完整的邮件,然后解析邮件的MIME 在C#中,有一些类可以破译/解析邮件的MIME结构,并且可以方便地访问邮件的各个部分 尝试以下代码: using(Pop3 pop3 = new Pop3())

我试图实现的是通过代码从Gmail、Yahoo或任何其他服务器下载特定类型的邮件附件。有没有可能或者有没有关于这方面的想法会有很大帮助

您需要IMAP来完成这项工作。你需要先阅读邮件的MIME格式。然后,您可以轻松下载附件(如果有)

在POP中,没有规定知道邮件中是否有附件。在POP中,您需要在本地下载完整的邮件,然后解析邮件的MIME

在C#中,有一些类可以破译/解析邮件的MIME结构,并且可以方便地访问邮件的各个部分


尝试以下代码:

using(Pop3 pop3 = new Pop3())  
 {  
     pop3.Connect("server");  
     pop3.UseBestLogin("user", "password");  
     foreach (string uid in pop3.GetAll())  
     {  
         IMail email = new MailBuilder()
         .CreateFromEml(pop3.GetMessageByUID(uid));  
         Console.WriteLine(email.Subject);  
         // save all attachments to disk  
         email.Attachments.ForEach(mime => mime.Save(mime.SafeFileName));  
     }  
     pop3.Close();  
 } 
资料来源:

(一)

(二)

希望这对你有帮助


谢谢

通过POP或IMAP连接,浏览邮件,检查邮件是否有附件。您尝试过什么?您的问题是什么?邮件服务器是网页,您必须编写自定义代码与每个网页进行交互。通过邮件中附件的“类名”属性,我可以单击该附件,但它有两个问题:一个是如果邮件在IE中打开,然后单击后会打开一个弹出窗口,显示两个选项“保存”和“取消”,我无法通过代码单击,因为这是Microsoft的安全功能。另一个问题是,我只想下载特定类型的邮件,单击类名将下载每个附件。