c# VSTO 如何在 ActiveInlineResponse 中保存电子邮件
c# VSTO How to save email in ActiveInlineResponse
我有一个简单的问题,但不知道如何解决。
我的 VSTO 插件使用 Outlook 创建新电子邮件。但是用户填写的application outlook的邮件发不出去,先用C#修改发邮件。[=17=]
我的问题是如何保存这封不是通过用户发送,而是通过 c# 发送的电子邮件。
保存电子邮件 Inspector
有效
inspector = Globals.ThisAddIn.Application.ActiveInspector();
Outlook.MailItem mi = inspector.CurrentItem as Outlook.MailItem;
mi.Save();
问题是 explorer
。
用户打开电子邮件只需单击一下,弹出窗口 windows 立即打开,用户留在资源管理器中。当他点击回复时,Outlook 中的电子邮件被标记为 Draft
.
如何保存此类电子邮件(只需在触发按钮 Send
后将状态 Draft
更改为正常。)
Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer();
MailItem item = explorer.ActiveInlineResponse;
item.Save();
感谢提示
您最早可以访问处于已发送状态的消息是在 Items.ItemAdd
事件在“已发送邮件”文件夹上触发时。届时所有与发件人相关的属性也将被填充。
请注意,您可以更改 MSG 文件的已发送标志 - 对于商店中的消息,该位只能在消息第一次保存之前翻转(这就是为什么 MailItem.Sent
属性 在 OOM 中是只读的)。但该限制不适用于 MSG 文件)。如果使用 Redemption(我是它的作者)是一个选项,您可以使用类似下面的内容来使 MSG 文件显示为已发送:
Redemption.RDOSession session = new Redemption.RDOSession();
Redemption.RDOMail msg = session.GetMesageFromMsgFile(@"c:\temp\file.msg");
msg.Sent = true;
msg.Save();
我有一个简单的问题,但不知道如何解决。
我的 VSTO 插件使用 Outlook 创建新电子邮件。但是用户填写的application outlook的邮件发不出去,先用C#修改发邮件。[=17=]
我的问题是如何保存这封不是通过用户发送,而是通过 c# 发送的电子邮件。
保存电子邮件 Inspector
有效
inspector = Globals.ThisAddIn.Application.ActiveInspector();
Outlook.MailItem mi = inspector.CurrentItem as Outlook.MailItem;
mi.Save();
问题是 explorer
。
用户打开电子邮件只需单击一下,弹出窗口 windows 立即打开,用户留在资源管理器中。当他点击回复时,Outlook 中的电子邮件被标记为 Draft
.
如何保存此类电子邮件(只需在触发按钮 Send
后将状态 Draft
更改为正常。)
Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer();
MailItem item = explorer.ActiveInlineResponse;
item.Save();
感谢提示
您最早可以访问处于已发送状态的消息是在 Items.ItemAdd
事件在“已发送邮件”文件夹上触发时。届时所有与发件人相关的属性也将被填充。
请注意,您可以更改 MSG 文件的已发送标志 - 对于商店中的消息,该位只能在消息第一次保存之前翻转(这就是为什么 MailItem.Sent
属性 在 OOM 中是只读的)。但该限制不适用于 MSG 文件)。如果使用 Redemption(我是它的作者)是一个选项,您可以使用类似下面的内容来使 MSG 文件显示为已发送:
Redemption.RDOSession session = new Redemption.RDOSession();
Redemption.RDOMail msg = session.GetMesageFromMsgFile(@"c:\temp\file.msg");
msg.Sent = true;
msg.Save();