如何解决通过Outlook Web App上的VB.NET下载电子邮件附件
我知道之前在Stack Overflow和整个Internet上都曾问过类似的问题,但是我的情况有点特殊。让我给出一些背景:
我想制作一个宏/程序,该程序可以自动从Outlook Web App上特定文件夹中的一组电子邮件(根据日期)下载附件。唯一的问题是,这是给我的工作场所使用的,IT部门拒绝为我提供Outlook帐户的密码,这使得将Web应用程序同步到桌面应用程序很困难(我是一名药房学生,在一个化学家仓库,而我只是作为一个本地宠物项目来这样做,因为锁定使我感到无聊,因此并不能用于所有商店。
我已经提出了解决方案的想法,从本质上讲,我想使用VB.Net的urlmon功能从网络上将附件下载为文件。我在想是否可以将Web浏览器控件放在表单上,使其不可见,并且在程序加载时,它会自动转到商店电子邮件(我可以获取url)和相应的文件夹。那我也许想看一下HTML内容?然后下载今天收到的所有电子邮件中的所有附件,例如该文件夹中的
。我知道这是一种独特而怪异的情况,因此非常感谢您的帮助。如果还有其他问题,请随时提出,我将尽我所能回答。
预先感谢:)
解决方法
.NET框架不包含允许访问电子邮件服务器的类(SmtpClient仅可以发送消息)。请记住,首先需要一个.NET IMAP组件或.NET POP3组件,以从服务器下载电子邮件。
IMAP和POP3是允许与电子邮件服务器(如Exchange或Gmail)进行通信并下载电子邮件的协议。 IMAP更加强大,因为它允许搜索电子邮件并将其分组到文件夹中。您可以在此处查看IMAP与POP3的比较。
电子邮件附件与电子邮件一起下载。附件作为哑剧树的一部分存储在电子邮件中。通常使用Quoted-Printable或Base64编码。这就是为什么除了IMAP / POP3客户端之外,还需要MIME解析器的原因。 Mail.dll将为您解析此类MIME树,并将所有附件公开为众所周知的.NET集合。当然,所有其他电子邮件属性,例如主题,日期,收件人和正文也都可用。
IMail(代表电子邮件已下载并解析后的类)使用4个集合来存储附件:
IMail.Attachments –所有附件(包括Visuals,NonVisuals和Alternatives)。 IMail.Visuals –视觉元素,应显示给用户的文件,例如HTML电子邮件中嵌入的图像。 IMail.NonVisuals –非视觉元素,“真实”附件。 IMail.Alternatives –替代内容表示形式,例如医疗预约。
,此问题现已解决。我使用了Selenium Web驱动程序,将其集成到VB.NET,然后用它来刮擦电子邮件。如果您想知道我是如何做到的,请随时发表评论。我现在要关闭此问题线程:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。