Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用模板发送电子邮件?_C#_Visual Studio_C# 4.0 - Fatal编程技术网

C# 如何使用模板发送电子邮件?

C# 如何使用模板发送电子邮件?,c#,visual-studio,c#-4.0,C#,Visual Studio,C# 4.0,我在c#中使用此代码发送电子邮件。我希望这封电子邮件是基于一个模板。此电子邮件包含图像和样式。我想更改电子邮件的某些内容(例如,姓名、链接等)。你知道怎么做吗?代码如下: private void button1_Click(object sender, EventArgs e) { // Create outlook application object. var outlookApplication = new Microsoft.Office.Interop.Outlook.Appli

我在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);

}
private void按钮1\u单击(对象发送者,事件参数e)
{
//创建outlook应用程序对象。
var outlookApplication=new Microsoft.Office.Interop.Outlook.Application();
//创建邮件消息。
var newMail=(Microsoft.Office.Interop.Outlook.MailItem)outlookApplication.CreateItem(Microsoft.Office.Interop.Outlook.OlimType.olMailItem);
newMail.To=”example@exam.com";
newMail.Subject=“示例”;
newMail.SentonBehalfName=”team@iny.co.uk";
添加(@“c:\New\DebriefReportTemplate.docx”);
newMail.BodyFormat=Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
newMail.HTMLBody=“亲爱的示例,

示例示例。

”; newMail.Display(true); }
建议您使用Razor引擎。它易于使用,语法与asp.NETMVC3Razor相同

如果电子邮件模板中的关键字已修复,则您可以向我们发送电子邮件 替换(“示例”,“XYZ”)并获得您想要的结果


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

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

{1}

”,名称,消息);

如果您需要更复杂的内容,您应该按照@allentranks的建议使用Castle Velocity或Razor之类的模板引擎。

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

我可以使用Outlook Inteop库执行此操作吗?是的,它将返回一个字符串,可用于填充HTMLBody属性。Thia可用于修改现有Outlook模板文件?如果是,怎么做?嗯,我不这么认为。您可能想在问题中添加一个事实,即您所谈论的模板是Outlook模板。