在无法访问互联网连接的情况下创建电子邮件对象

本文关键字:情况下 创建 电子邮件 对象 连接 访问 互联网 | 更新日期: 2023-09-27 18:36:43

我正在创建一个程序,该程序在完成一个过程后使用Microsoft Exchange自动发送电子邮件。如果用户在发送电子邮件时没有互联网连接,程序会将电子邮件另存为本地 .eml 文件。单独的服务将在用户连接备份时定期检查并发送这些电子邮件。

以下是我用于设置服务和创建消息对象的代码:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new WebCredentials("exampleaddress@example.com", "Password");
service.AutodiscoverUrl("exampleaddress@example.com", RedirectionUrlValidationCallback);
EmailMessage message = new EmailMessage(service);

我遇到的问题是,为了保存电子邮件,我需要使用服务对象对其进行初始化。但是,该服务需要互联网自动发现 URL。要求互联网设置此服务违背了我正在尝试做的事情的重点。

有没有办法在不需要服务和互联网的情况下设置此电子邮件对象?

在无法访问互联网连接的情况下创建电子邮件对象

您不一定需要使用自动发现功能。如果您事先知道交换 URL,您可以手动提供它。

而不是

service.AutodiscoverUrl("exampleaddress@example.com", RedirectionUrlValidationCallback);

service.Url = new Uri("https://example.com/EWS/Exchange.asmx");

您如何将邮件另存为 EML 文件,例如,如果您使用电子邮件类提供的 MimeContent,那么您尝试执行的操作在没有连接到 Exchange 的情况下将无法工作。MimeContent 由 Exchange 存储生成,因此您只会为 Exchange 存储中存在的邮件填充该属性。

如果您从头开始生成消息,只需以您自己的序列化格式存储数据,直到您准备好发送,那么如果您尚未生成任何 Mime 内容,使用 EML 文件应该没有任何优势

干杯幽谷