在web.config的mailSettings部分中处理多个邮件服务器的最佳方法是什么?

3
我有一个应用程序每月发送500K+个交易性电子邮件。其中一些比其他的更重要。我需要使用高递送率的邮件解决方案(带有跟踪功能,费用更高)发送重要邮件,而使用普通邮件服务器发送不太重要的邮件。
是否可以设置多个smtp部分在mailSettings中,指向两个邮件服务器,并让代码选择要使用哪个邮件服务器发送。
使用“位置”可以做到这一点,并且可以根据路径选择smtp服务器来处理发送电子邮件的页面。但是,我有一个独立的后台进程在异步执行此操作,这样做对我没有太大帮助。
谢谢!
1个回答

1

不要使用mailsettings,可以考虑使用appsettings来存储服务器连接字符串。

<appSettings>
   <add key="SmtpServer.Fast" value="fast.smtp.mycompany.com" />
   <add key="SmtpServer.Slow" value="slow.smtp.mycompany.com" />
</appSettings>

然后只需使用new SmtpClient(server)而不是new SmtpClient(),然后您可以设置您的代码如下:

SmtpClient client = null;

if (IsHighPriorityMessage(msg))
  client = new SmtpClient(ConfigurationManager.AppSettings["SmtpServer.Fast"]);
else
  client = new SmtpClient(ConfigurationManager.AppSettings["SmtpServer.Slow"]);

如果您需要配置身份验证,只需使用client.Credentials

谢谢。有很多方法可以做到这一点,这是其中之一。我们现在正在做类似的事情。正如您所想象的那样,除了MTA名称外还有更多内容 - 其中一个使用ESMTP,因此我们还需要设置用户/密码/端口。 - taazaa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接