带有OFT模板的Outlook邮件项目

时间:2012-07-26 16:51:50

标签: c# outlook html-email

我需要使用预先存在的oft模板创建一个新的Outlook邮件项。这工作正常,但我的问题是当我需要然后将文本添加到模板的主体。当我尝试这个时,它会在模板主体上写下来。

当前模板主体包含一个有三行的表,我需要将用户输入添加到中间行吗?

我按照MSDN示例创建了项目,但我不确定如何执行此操作。

是否可以将文本添加到oft模板而无需覆盖其顶部?

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();

1 个答案:

答案 0 :(得分:5)

MailItem.Bodystring数据类型。如果您要将文字附加到Body,则应使用+=而不是=。由于您使用的是HTML格式的电子邮件( BodyFormat = olFormatHTML ),因此您应该使用MailItem.HTMLBody这是一个HTML语法字符串。

MSDN section 17.3.1 for reference on how to add text to the Body propertySection 17.3.2显示了如何向HTMLBody属性添加文字。

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

mail.Body += "<p>TEST</p>";

HTML电子邮件示例(BodyFormat = olFormatHTML

mail.HTMLBody = mail.HTMLBody.Replace("</body>", "<p>TEST</p></body>");