我希望能够在我的程序中内联回复电子邮件,但调用回复功能似乎只为我填写收件人:和主题:字段。我似乎无法在网上找到任何关于它的信息,而且它似乎没有打开内联回复的过载。
我发现每个 MailItem 都有一个对话,所以我想知道是否必须手动进行内联回复?(我真的很想避免这种情况,重复对话会很痛苦,我们中的一些人可能有数百封电子邮件)。
我发现这段代码有助于实现这一点;
Document oldDoc = itemToReplyTo.GetInspector.WordEditor;
Document newDoc = newMailItem.GetInspector.WordEditor;
if (oldDoc != null)
{
Microsoft.Office.Interop.Word.Selection oldSelect = oldDoc.Windows[1].Selection;
Microsoft.Office.Interop.Word.Selection newSelect = newDoc.Windows[1].Selection;
oldSelect.Find.Execute("From:");
oldSelect.Collapse(WdCollapseDirection.wdCollapseStart);
oldSelect.MoveEnd(WdUnits.wdStory, 1);
oldSelect.Copy();
newSelect.Move(WdUnits.wdStory, 1);
newSelect.InlineShapes.AddHorizontalLineStandard();
newSelect.Paste();
newSelect.Move(WdUnits.wdStory, -1);
newSelect.InsertAfter("Reply Text here");
newSelect.Find.ClearFormatting();
newSelect.Find.Execute(mailItem.SenderEmailAddress);
}
我尝试了以下方法,它使用 Outlook 2010 对我有用。
Outlook.MailItem reply1 = mailItem.Reply();
//prepend text to email
reply1.HTMLBody = "<html><body><strong>Test Body</strong><p><p></body></html>" + reply1.HTMLBody;
reply1.Display(false); //display message or .Send() to send