0

我在 c# 中使用此代码发送电子邮件。我希望这封电子邮件基于模板。此电子邮件包含图像和样式。我想更改电子邮件的某些内容(例如,姓名、链接等)。任何想法如何去做?代码如下,

private void button1_Click(object sender, EventArgs e)
{


// Create outlook application object.
var outlookApplication = new Microsoft.Office.Interop.Outlook.Application();

// Create mail message.
var newMail = (Microsoft.Office.Interop.Outlook.MailItem)outlookApplication.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
newMail.To = "example@exam.com";
newMail.Subject = "Example";
newMail.SentOnBehalfOfName = "team@iny.co.uk";
newMail.Attachments.Add(@"c:\New\DebriefReportTemplate.docx");

newMail.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
newMail.HTMLBody = "<p>Dear Example,</p><p>Example example.</p>";
newMail.Display(true);

}
4

4 回答 4

1

向您推荐 Razor Engine,http://razorengine.codeplex.com/。它易于使用,语法与 asp.net mvc 3 razor 相同

于 2012-05-18T05:00:43.817 回答
0

您可以使用格式和标签创建 xsl 文件。将数据传递给 xsl 并将其转换为 html 格式。

于 2012-05-18T05:49:33.800 回答
0

最简单的解决方案是使用String.Format

wMail.HTMLBody = string.Format("<p>Dear {0},</p><p>{1}</p>", name, message);

如果您需要更复杂的东西,您应该使用 @allentranks 建议的 Castle Velocity 或 Razor 等模板引擎。

于 2012-05-18T05:16:08.577 回答
0

如果您在电子邮件模板中的关键字是固定的,那么您可以使用 Sting.Replace("Example","XYZ") 并获得您想要的结果

于 2012-05-18T05:07:16.840 回答