我有一个将Email
转换为.eml
格式的方法。
但是,EmailMessage.Bind
语句突然停止工作,没有任何错误。
下面是我的代码片段:
public static string convertEmailToEml(EmailMessage emailMessage, string caseNumber, string EMLSaveFilePath)
{
Console.WriteLine(emailMessage.Subject); //correct value
Console.WriteLine(caseNumber); //correct value
Console.WriteLine(EMLSaveFilePath); //correct value
Console.WriteLine(emailMessage.Id); //correct value
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
PropertySet props = new PropertySet(EmailMessageSchema.MimeContent);
var email = EmailMessage.Bind(service, emailMessage.Id, props); //not executed
string emlFullPath = EMLSaveFilePath + caseNumber + ".eml"; //not executed
Console.WriteLine(emlFullPath); //code not reached
Console.ReadKey();
using (FileStream fs = new FileStream(emlFullPath, FileMode.Create, FileAccess.Write))
{
fs.Write(email.MimeContent.Content, 0, email.MimeContent.Content.Length);
}
return emlFullPath;
}
我可以知道是否有任何可以调查的地方吗?
在构建解决方案时warning
消息如下,不确定它们是否链接:
发现同一依赖项的不同版本之间的冲突 无法解析的程序集。 这些引用冲突是 当日志详细程度设置为"详细"时,在生成日志中列出。
调试模式下引发的异常:
'Microsoft.Exchange.WebServices.Data.ServiceLocalException' in Microsoft.Exchange.WebServices.dll("The Url 属性 必须设置交换服务对象。
我已经验证了service
、emailMessage.Id
和props
值不是null
。
根据 'EmailMessage.Bind(...( 的文档,它指出此方法会导致对 Exchange Web Services (EWS( 的调用。
您创建了ExchangeService
的实例,但未提供该实例的 URL(文档(。这是一个要求。引发的异常是直接指向丢失的数据。