2

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

怎么做 ?

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

谢谢你。

4

2 回答 2

7

我有同样的问题。官方邮政文档中没有参考,也没有操作方法。所以这里有一个:

  1. 使用自定义配置创建 SmtpClient 实例
  2. 使用带有 2 个参数的构造函数(ViewEngineCollection、Func «SmtpClient»)创建一个 Postal.EmailService 实例
  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);
于 2016-03-21T16:40:33.927 回答
0

添加到拉斐尔的答案。如果你使用

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@Houssam new ViewEngineCollection()Hamdan 在上面的评论中所建议的那样)使用剃刀视图引擎。

完整线路:

Postal.EmailService emailService = new Postal.EmailService(ViewEngines.Engines, () => client);
于 2020-05-16T19:23:17.133 回答