我正在构建一个我们正在使用电子邮件模板的网站。正如在HTML模板中,我们将令牌传入类似{用户名},{电子邮件},{名称首字母}等。寻找一种存储电子邮件模板的好方法
根据最佳实践,我正努力在哪里存储这些令牌。我将首先展示我所采用的方法,并且我会非常高兴地听到一些专家视角和其他方法。
我在名为/ Templates /的文件夹中创建了HTML模板。
我所说的静态方法在我的服务层,这需要在以下参数:
- 用户名
- 用户名
- 电子邮件
- TEMPLATEPATH( “〜/模板”)
- 电子邮件主题
在服务层我有m y静态方法SendUserEmail(),它使用一个Template类 - 它接受一个路径,将它作为一个字符串加载,并具有一个AddToken()方法。
在我的静态SendUserEmail()中,我从方法签名构建令牌列表并发送电子邮件。
这使得在我的实际使用中有相当长的方法调用,特别是因为我从web.config调用“TemplatePath”和“电子邮件主题”。我可以创建一个具有比ConfigurationManager.AppSettings更短的方法调用的实用程序,但我的担心更多的是我通常不会看到方法签名这么久,我觉得这是因为我做错了什么。
这项技术对我现在使用的电子邮件非常有用,最多使用前3个标记。但是,将来我会有更多的令牌传入,我只是想知道要采取什么方法。
我是否创建特定于需要发送的电子邮件的方法?即。 SendNewUserRegistration(),SendMarketingMaterial(),每个参数都有不同的签名?
我正在使用ASP.NET成员资格,其中可能包含所有我需要的字段的扩展。有三个主要对象,aspnet_User,aspnet_Mebership和aspnet_profile。如果它全部包含在一个对象中,我会刚刚通过这个对象。是否有关于传递所有3的性能问题,以获得我需要的所有字段?这是相对于只传入aspnet_User.UserID,aspnet_User.Email等?
我可以看到传递一个带有令牌条目的字典,但我只是想知道这是否太多以致无法询问调用页面?
是否有它的一个配置文件坚持这些办法自己叫Templates.config,其中有像标签 -
<Templates>
<EmailTemplate Name="New User Registration">
<Tokens>
<UserName>
<UserID>
<Email>
</Tokens>
<Message Subject="Hi welcome...">
Hi {UserName}...
</Message>
</EmailTemplate>
</Templates>
我想主要的原因我问,是因为我很难确定责任应该在哪里确定使用什么样的模板,以及如何传递参数。调用页面是否需要构建TokenName,TokenValue字典可以吗?或者该方法是否需要将每个参数作为定义的参数?这在web.config中看起来不合适,因为我有2个入口,并且感觉应该看起来更加嵌套。
谢谢。客观方法的任何技巧或建议我可以用来问我的方法是否可行。