绝对是的。
在运行时定义SMTPClient 时,您可以通过以下代码设置服务器的属性
SmtpClient client=new SmtpClient("Host");
client.Credentials=new NetworkCredential("username", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.from="sender@gmail.com";
mailMessage.To.Add("recipient@gmail.com");
mailMessage.body="body";
mailMessage.subject="subject";
client.Send(mailMessage);
您可以做什么,而不是将值硬编码在代码中,您可以从 Sitecore 项目中检索值并使用这些值,这将允许对内容编辑器进行更好的控制,甚至在功能的不同部分使用不同的 SMTP 服务器。
Item emailItem = Sitecore.Context.Database.GetItem("Id of Item");
string from = emailItem["From"];
string to = emailItem["To"];
string server = emailItem["Mail server"];
string subject = emailItem["Subject"];
string message = emailItem["Message"];
除了 Sitecore 的 EXM 又名 ECM 之外,还有一个 SendEmail pipeline,如果您采用 EXM 路线,您可以覆盖它。它有两个processorsFillEmail 和SendEmail,您可以使用或删除并添加您自己的processor 来实际发送消息。
可以将电子邮件保存到数据库或内容中,而不是发送它们。这可以通过 Sitecore 或 Webforms for Marketers 中的自定义代码来实现,Save Actions 用于发送电子邮件或保存到数据库,并且配置非常简单。
正如您所说,无需每次都发送电子邮件,更多的是确定您要实现的目标以及发送电子邮件、保存到数据库等是否更相关。 Sitecore 的伟大之处在于您可以通过编程方式创建 Items 并将信息存储在其中,省去您创建数据库表、管理 ConnectionStrings、设置 EntityFramework 等的烦恼。
这是creating Sitecore Items Programmatically 上的一个简单博客。
Sitecore 工作流发送电子邮件是可选的,可以通过从 WorkflowState 项目下方删除 Send Email CommandAction 项目然后发布来删除。