如何在 POSTAL MVC 中设置 SMTP 客户端而不是 WEB.Config

How to Set SMTP Client in POSTAL MVC not in WEB.Config

我在项目中使用 POSTAL MVC 时遇到问题。我的托管服务公司要求我在代码中而不是在 Web 配置中设置 smtp 客户端配置。

怎么做?

希望有人能给我一个解决方案

谢谢。

我遇到了同样的问题。没有关于官方邮政文档的参考,也没有操作方法。 所以这是一个:

  1. 使用自定义配置创建 SmtpClient 实例
  2. 使用带有 2 个参数的构造函数创建一个 Postal.EmailService 实例(ViewEngineCollection、Func «SmtpClient»)
  3. 现在您可以通过调用 emailService 使用自定义 SmtpClient 配置发送电子邮件。

完整的示例代码如下:

dynamic email = new Email("Example");
email.To = "webninja@example.com";
email.FunnyLink = DB.GetRandomLolcatLink();

SmtpClient client = new SmtpClient("mail.domain.com");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("user@domain.pt", "somepassword");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Port = 25;
client.EnableSsl = false;

Postal.EmailService emailService = new Postal.EmailService(new ViewEngineCollection(), () => client);

emailService.Send(email);

添加到 Rafael 的回答中。如果你使用

Postal.EmailService emailService = new Postal.EmailService(new ViewEngineCollection(), () => client);

您可能会收到此错误:Email view not found for [name for he email template]. Locations searched 因为 new Postal.EmailService(new ViewEngineCollection(), () => client) 使用空视图引擎创建 emailService。使用 ViewEngines.Engines 代替 new ViewEngineCollection()(正如@Houssam Hamdan 在上面的评论中所暗示的那样)以使用剃刀视图引擎。

完整行:

Postal.EmailService emailService = new Postal.EmailService(ViewEngines.Engines, () => client);