我在向转发电子邮件添加文字时遇到了一些问题。这是我目前的代码:
private void ForwardFunction(Outlook.MailItem email)
{
Outlook.MailItem forwardEmail = ((Outlook._MailItem)email).Forward();
Outlook.Inspector forwardInsp = forwardEmail.GetInspector;
Word.Document forwardDoc = forwardInsp.WordEditor;
Word.Range forwardRange = forwardDoc.Range(0,1);
string forwardText = "This is some text";
forwardRange.Text = forwardText + forwardRange.text
newEmail.Recipients.Add("myemail");
forwardEmail.Save();
((Outlook._MailItem)forwardEmail).Send();
}
我已经完成了它并且它确实将文本添加到范围中,但是当我收到转发的电子邮件时,它不包含任何其他文本。我已经使用类似的代码来编辑用户正在编辑的当前电子邮件(New,Replies / Forwards,InlineResponses),但是传递给该函数的电子邮件是收件箱中当前选择的电子邮件。不确定这是否重要,可能是因为它没有被用户编辑。
我无法找到以特定方式将新文本添加到以编程方式转发的电子邮件中。
答案 0 :(得分:0)
对于对此感兴趣的任何人,我最终使用了.HTMLBody
。似乎使用.GetInspector
获取了_email
而不是fEmail
的检查员,您无法对其进行编辑,也无法获得正确的检查员,但它无法使用编辑它。无论哪种方式,使用.HTMLBody
似乎都可以解决它。
Outlook.MailItem fEmail = ((Outlook._MailItem)_email).Forward();
string forwardText;
forwardText = "class=MsoNormal>";
forwardText += "This is my forwarded message";
forwardText += "Bonus hyper link <a href='" + hyperlinkText + "'>" + hyperlinkText + "</a>";
var regex = new Regex(Regex.Escape("class=MsoNormal>"));
fEmail.HTMLBody = regex.Replace(fEmail.HTMLBody, forwardText, 1);
fEmail.Save();
fEmail.AutoForwarded = true;
((Outlook._MailItem)fEmail).Send();