我想创建自己的电子邮件模板,而不必使用第三方软件,我只想为自己清理一些基础知识:) 首先,所有电子邮件模板是否都归结为内联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);
其次,使用模板发送图像我假设它们作为附件添加或通过长地址链接到服务器上的图像位置,类似于网页?并显示在html中。
答案 0 :(得分:1)
我之前没有尝试过,但请查看MailDefinition
class。
答案 1 :(得分:0)
以下是我在创建电子邮件模板系统时遇到的一些解决方案:
我所知道的框架中没有内置的模板系统。我建立了一个过去运作良好的系统。现在我只是简单地做事。我会将{year}之类的项目替换为当前年份,{year2}替换为2位数年份或{year:2,}更多工作,但会导致您的任何变量都能够进行内联{ {1}}在初始构建之后没有太多工作。 (你可以做{var:name:upper},:lower,:titlecase;你可以传入一个对象并使用简单的反射技术来读取所有公共属性并自动替换......天空是极限!)重要的是在不违反YAGNI原则的情况下给自己留下很多余地。当你构建这样的系统时......
从您希望如何结束的示例开始。我最后写了像SubString()
这样的东西来做替换并吐出最终副本。然后,使用正则表达式检查所有内容是否已被替换,这样您就不会发送<html><body><h1><font face="arial">Hello, <b>{var:firstname}!</b> It's {hour} {ampm} here...</font></h1> ...</html>
并让您成为收件人的笑柄。仔细想想您希望如何插入内容。你可以用你自己的模板系统做很多疯狂的事情,好的和坏的,所以测试测试。单元测试对于回归测试很方便。请记住,一旦你上线,你不想犯错,因为你把它们发送给客户,并且在客户看到它之前无法改变它,就像你可以用网站做的那样。
大多数HTML简报都是HTML格式,使用inline-CSS或(gasp!) Hi, null null! It's nice to see you at {hour} {ampm}!
和TABLE
标签进行布局。这背后的原因是因为大多数电子邮件HTML呈现引擎过去都停滞不前。使用Thunderbird的方法可能与Mozilla有点合作,但看起来像GMail或Hotmail中的垃圾。我的建议是使用尽可能少的内联CSS,如果你这样做,可以测试几个电子邮件客户端,包括基于Web和非基于Web的客户端,以确保每个客户端都能获得所需的效果。使用FONT
进行布局,没有花哨的CSS3内容。 KISS规则适用于此,是的,它使用旧式HTML来自过去。在写完可怕的代码,使用表格进行布局等之后,您可能觉得需要洗个澡,但这就是我们需要做的事情。
另请阅读:http://www.hongkiat.com/blog/design-perfect-newsletter/