在我的程序中,我正在使用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或使用其他电子邮件客户端的其他用户,则会显示为空白附件。
如何确保以附件形式转发的电子邮件会保留原始内容?
答案 0 :(得分:0)
添加指示邮件内容类型的行似乎可以解决此问题。以下任一设置似乎都有效。添加ContentType后,我可以从Gmail下载附件,但我必须使用Outlook客户端才能打开它。
attachment.ContentType = "multipart/alternative"
OR
attachment.ContentType = "message/rfc822"