【问题标题】:Outlook Mail Item with OFT Template带有 OFT 模板的 Outlook 邮件项目
【发布时间】:2023-03-13 15:21:01
【问题描述】:

我需要使用预先存在的常用模板创建一个新的 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();

【问题讨论】:

    标签: c# outlook html-email


    【解决方案1】:

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

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

    【讨论】:

    • 嗨,谢谢你,我的问题是当我添加文本时,它会删除经常文件正文中的格式。是否可以在 C# 中经常编辑?
    • 我以不同的方式解决了这个问题,我使用的是 HTML 模板而不是 OFT。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    相关资源
    最近更新 更多