合理的警告:我是C#Outlook 的新手,所以请耐心等待。
我一直在尝试在Outlook中使用电子邮件来构建自己的快速又脏的插件,但是该插件要求我将附件发送到其他系统。
长话短说; 为此,我需要将Outlook项目的邮件附件转换为byte数组。
到目前为止,我所拥有的(完整的代码显然比这要长得多,但是我敢肯定,与坐下来阅读代码的上下一页相比,我们所有人都有更好的事情要做):
Outlook.Selection sel = control.Context as Outlook.Selection;
Outlook.MailItem mail = sel[1];
Outlook.Attachment a = mail.Attachments[0];
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道如何转换a为byte数组。
PS:关于如何将byte数组转换为邮件,我知道大约有十亿个答案,但是没有一个可以解释如何使数组反过来运行的答案。
编辑1:我宁愿不必保存文件。
小智 5
Dmitry提出的第二种方法(以二进制流形式打开附件)也可以在托管代码中实现。它使用PropertyAccessor接口,该接口可用于C#中的附件对象。这是我在自己的项目中成功使用的一些示例代码:
const string PR_ATTACH_DATA_BIN = "http://schemas.microsoft.com/mapi/proptag/0x37010102";
Outlook.Attachment attachment = mail.Attachments[0];
// Retrieve the attachment as a byte array
var attachmentData =
attachment.PropertyAccessor.GetProperty(PR_ATTACH_DATA_BIN);
Run Code Online (Sandbox Code Playgroud)
我的示例代码基于MCW Technologies,LLC的Ken Getz作为MSDN文档的一部分提供的“ 如何:修改Outlook电子邮件的附件”主题。
| 归档时间: |
|
| 查看次数: |
4341 次 |
| 最近记录: |