带OFT模板的Outlook邮件项目

Der*_*rek 3 c# outlook html-email

我需要使用现有的办公室模板来创建新的Outlook邮件项目。这可以正常工作,但是我的问题是何时需要在模板正文中添加文本。当我尝试这样做时,它会覆盖模板主体。

当前的模板主体是否包含具有三行的表,并且我需要将用户输入添加到中间行?

我按照MSDN示例创建项目,但不确定如何执行下一部分。

是否可以将文本添加到常用模板中而不在其顶部覆盖?

private void button1_Click(object sender, EventArgs e)
{
    Outlook.Application application = new Outlook.Application();


    Outlook.Folder f = 
        application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts) 
            as Outlook.Folder;

    Outlook.MailItem mail =
        application.CreateItemFromTemplate(@"C:\Documents and Settings\riversd\Desktop\DataBase\Notification.oft", f)
        as Outlook.MailItem;

    mail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
    mail.Body = "<p>TEST</p>";
    mail.Save();
Run Code Online (Sandbox Code Playgroud)

Sli*_*SFT 5

MailItem.Body是一种string数据类型。如果您想在上附加文字Body,则应使用+=而不是=。由于您使用的是HTML格式的电子邮件(BodyFormat = olFormatHTML),因此您应该MailItem.HTMLBody使用HTML格式的字符串。

有关如何向Body属性添加文本的参考,请参见MSDN第17.3.1节第17.3.2节显示了如何向HTMLBody属性添加文本。

文字电子邮件示例(BodyFormat = olFormatPlain

mail.Body += "<p>TEST</p>";
Run Code Online (Sandbox Code Playgroud)

HTML电子邮件示例(BodyFormat = olFormatHTML

mail.HTMLBody = mail.HTMLBody.Replace("</body>", "<p>TEST</p></body>");
Run Code Online (Sandbox Code Playgroud)