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