Csharp/C#教程:Exchange Web服务 – 将电子邮件附件从Base64字符串转换为字节提供错误分享


Exchange Web服务 – 将电子邮件附件从Base64字符串转换为字节提供错误

我正在尝试使用EWS读取电子邮件附件,并将其作为文本文件保存到磁盘,以便以后使用。

我收到一个错误:

"The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters. " 

这是我的代码:

 Directory.CreateDirectory(emailAttachmentsPath); // Put attachment contents into a stream. C:DevEWSHelloWorld emailAttachmentsPath = emailAttachmentsPath + "\" + sEmailSubject+".txt"; //save to disk using (Stream FileToDisk = new FileStream(emailAttachmentsPath, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { byte[] ContentBytes = System.Convert.FromBase64String(itemAttachment.ToString()); FileToDisk.Write(ContentBytes, 0,ContentBytes.Length); FileToDisk.Flush(); FileToDisk.Close(); } 

请问最好的方法是什么?

我基本上想在文本文件中使用电子邮件的文本,并且该电子邮件中的任何附件也将保存到磁盘(我可以使用FileStream来完成该部分。

菲利普,

您将无法在ItemAttachment上使用Convert()方法,因为它不是Base64编码的。 项目附件有很多关于项目的属性,如果我正确理解您的请求,您只需要查找电子邮件的正文。

您要考虑的第一件事是添加一个检查以查看ItemAttachment是否是电子邮件消息。 如果是,有几行可以访问电子邮件正文的文本:

 itemAttachment.Load(new PropertySet(BasePropertySet.FirstClassProperties)); string BodyText = itemAttachment.Item.Body.Text; 

第一行将加载项目,它是第一类属性。 第二行将获取电子邮件正文的文本版本。

我希望这有帮助。 如果这确实解决了您的问题,请将post标记为已回答。

谢谢,

—鲍勃—

上述就是C#学习教程:Exchange Web服务 – 将电子邮件附件从Base64字符串转换为字节提供错误分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1010891.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐