在VSTO Outlook加载项中编程创建带原始邮件的回复方法咨询
在VSTO Outlook加载项中创建原生样式回复的简便方法
当然有简便的方式!完全不用手动去检索原始邮件的各种属性、手动格式化文本模拟原生样式——Outlook对象模型已经给我们提供了现成的方法,和点击内置回复按钮的效果完全一致。
你只需要获取到要回复的原始MailItem对象,然后调用它的Reply()(回复发件人)或者ReplyAll()(回复所有人)方法就行。这个方法会直接生成一个符合Outlook原生样式的回复邮件:
- 主题自动加上
Re:前缀 - 自动把原始邮件内容以带引用格式(比如缩进、灰色块)的方式插入到回复内容下方
- 自动设置好收件人、发件人信息
- 甚至会保留你的Outlook默认签名(如果有的话)
给你个C#的代码示例,很直观:
// 假设你已经获取到了要回复的原始邮件对象originalMail(MailItem类型) MailItem replyMail = originalMail.Reply(); // 如果需要自定义回复内容,可以在这里修改,比如在引用前添加你的回复文本 replyMail.Body = "这是我的回复内容\n\n" + replyMail.Body; // 显示回复窗口,或者直接发送 replyMail.Display(true); // true表示模态窗口 // replyMail.Send(); // 如果不需要手动编辑直接发送
如果是VB.NET的话,代码逻辑类似:
Dim originalMail As MailItem = ' 获取原始邮件对象 Dim replyMail As MailItem = originalMail.Reply() replyMail.Body = "这是我的回复内容" & vbCrLf & vbCrLf & replyMail.Body replyMail.Display(True)
这个方法的优势就是完全复用Outlook原生的回复逻辑,样式、格式、属性继承都和手动点击回复按钮一模一样,省去了你自己处理各种边缘情况的麻烦(比如不同邮件格式的引用处理、签名插入位置这些)。
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

