EWS 将电子邮件作为附件转发 - 无法在其他电子邮件客户端中打开
EWS forward email as attachment - Cannot open in other email clients
在我的程序中,我正在使用 EWS .NET API 读取 Exchange 邮箱并将电子邮件作为附件转发到外部电子邮件地址。我使用的代码如下
private void ForwardMessage(ExchangeService exchangeService, EmailMessage item)
{
ResponseMessage responseMessage = item.CreateForward();
item.Load(new PropertySet(BasePropertySet.FirstClassProperties, new
PropertySet(){ItemSchema.MimeContent,
ItemSchema.Subject}));
var mail = new EmailMessage(exchangeService);
var attachment = mail.Attachments.AddFileAttachment(String.Format("
{0}.eml", item.Subject),
item.MimeContent.Content);
String forwardEmailAddresses =
MailProcessorSettings.Default.ForwardEmailAddress;
char[] delimiters = { ',', ';' };
foreach (var emailAddress in forwardEmailAddresses.Split(delimiters,
StringSplitOptions.RemoveEmptyEntries))
{
mail.ToRecipients.Add(emailAddress);
}
mail.Subject = item.Subject;
mail.Send();
}
我可以在 Outlook 中打开作为附件转发的电子邮件。但是,如果我将它发送到 Gmail 或使用不同电子邮件客户端的其他用户,它会显示为空白附件。
如何确保作为附件转发的电子邮件保留原始内容?
添加一行指示消息的内容类型似乎可以解决此问题。以下任一设置似乎都有效。添加 ContentType 后,我可以从 Gmail 下载附件,尽管我必须使用 Outlook 客户端才能打开它。
attachment.ContentType = "multipart/alternative"
OR
attachment.ContentType = "message/rfc822"
在我的程序中,我正在使用 EWS .NET API 读取 Exchange 邮箱并将电子邮件作为附件转发到外部电子邮件地址。我使用的代码如下
private void ForwardMessage(ExchangeService exchangeService, EmailMessage item)
{
ResponseMessage responseMessage = item.CreateForward();
item.Load(new PropertySet(BasePropertySet.FirstClassProperties, new
PropertySet(){ItemSchema.MimeContent,
ItemSchema.Subject}));
var mail = new EmailMessage(exchangeService);
var attachment = mail.Attachments.AddFileAttachment(String.Format("
{0}.eml", item.Subject),
item.MimeContent.Content);
String forwardEmailAddresses =
MailProcessorSettings.Default.ForwardEmailAddress;
char[] delimiters = { ',', ';' };
foreach (var emailAddress in forwardEmailAddresses.Split(delimiters,
StringSplitOptions.RemoveEmptyEntries))
{
mail.ToRecipients.Add(emailAddress);
}
mail.Subject = item.Subject;
mail.Send();
}
我可以在 Outlook 中打开作为附件转发的电子邮件。但是,如果我将它发送到 Gmail 或使用不同电子邮件客户端的其他用户,它会显示为空白附件。
如何确保作为附件转发的电子邮件保留原始内容?
添加一行指示消息的内容类型似乎可以解决此问题。以下任一设置似乎都有效。添加 ContentType 后,我可以从 Gmail 下载附件,尽管我必须使用 Outlook 客户端才能打开它。
attachment.ContentType = "multipart/alternative"
OR
attachment.ContentType = "message/rfc822"