我在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);
}
答案 0 :(得分:1)
建议您使用Razor Engine,http://razorengine.codeplex.com/。它易于使用,语法与asp.net mvc 3 razor
相同答案 1 :(得分:0)
如果电子邮件模板中的关键字已修复,那么您可以 Sting.Replace(“示例”,“XYZ”)并获得您想要的结果
答案 2 :(得分:0)
最简单的解决方案是使用String.Format
wMail.HTMLBody = string.Format("<p>Dear {0},</p><p>{1}</p>", name, message);
如果你需要更复杂的东西,你应该像@allentranks建议的那样使用像Castle Velocity或Razor这样的模板引擎。
答案 3 :(得分:0)
您可以使用格式和标签创建和xsl文件。将数据传递给xsl并将其转换为html格式。