我需要使用预先存在的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();
答案 0 :(得分:5)
MailItem.Body
是string
数据类型。如果您要将文字附加到Body
,则应使用+=
而不是=
。由于您使用的是HTML格式的电子邮件( BodyFormat = olFormatHTML
),因此您应该使用MailItem.HTMLBody
这是一个HTML语法字符串。
见MSDN section 17.3.1 for reference on how to add text to the Body property。 Section 17.3.2显示了如何向HTMLBody
属性添加文字。
BodyFormat = olFormatPlain
)mail.Body += "<p>TEST</p>";
BodyFormat = olFormatHTML
)mail.HTMLBody = mail.HTMLBody.Replace("</body>", "<p>TEST</p></body>");