电子邮件模板基础,使用C#

电子邮件模板基础,使用C#,c#,email,system.net.mail,C#,Email,System.net.mail,我想创建自己的电子邮件模板而不必使用第三方软件,我只想为自己清理一些基础知识:) 首先,所有的电子邮件模板几乎都是带有内联CSS的HTML正文吗?因此,使用C#发送模板电子邮件会出现以下情况: SmtpClient smtpClient = new SmtpClient("smtphost"); MailMessage msg = new MailMessage(); msg.To.Add("toaddress6@place.com"); msg.Subject = "A TEMPLATE";


我想创建自己的电子邮件模板而不必使用第三方软件,我只想为自己清理一些基础知识:)
首先,所有的电子邮件模板几乎都是带有内联CSS的HTML正文吗?因此,使用C#发送模板电子邮件会出现以下情况:

SmtpClient smtpClient = new SmtpClient("smtphost");
MailMessage msg = new MailMessage();
msg.To.Add("toaddress6@place.com");
msg.Subject = "A TEMPLATE";
msg.Body = "<body> This is where the html goes O.o </body>";
msg.From = new MailAddress("fromaddress@anotherplace.com");
msg.IsBodyHtml = true;
smtpClient.Send(msg);
SmtpClient SmtpClient=新的SmtpClient(“smtphost”);
MailMessage msg=新的MailMessage();
msg.To.Add(“toaddress6@place.com");
msg.Subject=“模板”;
msg.Body=“这就是html的运行方式”;
msg.From=新邮件地址(“fromaddress@anotherplace.com");
msg.IsBodyHtml=true;
smtpClient.Send(msg);

第二,使用模板发送图像,我假设它们要么作为附件添加,要么通过一个长地址链接到服务器上的图像位置,类似于网页?并显示在html中。

以下是我在创建电子邮件模板系统时遇到的一些解决方案:

  • 据我所知,框架中没有内置的模板系统。我建立了一个在过去运行得很好的系统。现在我做事很简单。我会用当前年份替换{year},用两位数年份替换{year2},或者用{year:2}替换{year:2}这样的项目需要更多的工作,但会使您的任何变量都能够执行内联
    SubString()
    ,而无需在初始构建之后进行大量工作。(你可以做{var:name:upper},:lower,:titlecase;你可以传入一个对象,使用简单的反射技术来读取所有公共属性并进行自动替换……天空是极限!)重要的是给自己很大的回旋余地,而不太违反雅格尼原则。当你建立这样一个系统的时候

  • 从您希望如何结束的示例开始。最后我写了一些类似于
    Hello,{var:firstname}的东西!现在是{hour}{ampm}这里它将进行替换并输出最终副本。然后,使用正则表达式检查所有内容是否已被替换,这样就不会发出
    Hi,null!很高兴在{hour}{ampm}见到你
    并使您成为收件人的笑柄。仔细考虑您希望如何插入内容。你可以用你自己的模板系统做很多疯狂的事情,好的和坏的,所以测试一下。单元测试对于回归测试很方便。记住,一旦你上线,你就不想犯错误,因为你要把它们发送给客户,在客户看到它之前,你是无法改变它的,就像你对网站所做的那样

  • 大多数HTML时事通讯都是HTML格式,使用内嵌CSS或(gasp!)
    TABLE
    s和
    FONT
    标签进行布局。这背后的原因是因为大多数电子邮件HTML呈现引擎都停留在过去。与Thunderbird一起工作的东西可能在Mozilla上工作得很好,但在GMail或Hotmail中看起来像垃圾。我的建议是尽可能少地使用内联CSS,如果这样做,请使用一些电子邮件客户端进行测试,包括基于web和非web的客户端,以确保在每一个客户端中都获得所需的效果。使用
    TABLE
    s进行布局,不要使用花哨的CSS3内容。接吻规则适用于这里,是的,这是过去使用旧式HTML的一次冲击。在编写了可怕的代码、使用表格进行布局等之后,您可能会觉得需要洗个澡,但这正是我们需要做的


请阅读以下内容:

我以前没有尝试过,但请看一下。

1。是的,内联html和css。2.是附件或网页。当你链接到一个网页时,你通常可以这样做,然后在你的日志中你可以看到谁真正打开了他们的电子邮件(如果他们选择下载图像-大多数程序默认会阻止这些图像),你也可以在电子邮件中发送非html(txt)正文消息。有趣的是,你描述的内容看起来很像DotLiquid语法