我的代码很大程度上依赖于电子邮件通知。在我的web.config中,我可以像这样指定一个smtp服务器:
<system.net>
<mailSettings>
<smtp from="myaccount@mydomain.com">
<network host="mail.mydomain.com" port="25" userName="myusername" password="mypassword" defaultCredentials="true"/>
</smtp>
</mailSettings>
</system.net>
这是可以接受的,但我想在这里实现2或3个交换服务器(因为什么原因)smtp服务器1脱机,我需要一个备份选项。
是否有任何快速/内置的方法可以在.net中实现此故障安全,或者是否有可靠的手动方式来实现此功能。我现有的发送消息代码看起来像这样(但是淡化了):
MailMessage message = new MailMessage();
SmtpClient client = new SmtpClient();
client.Send(message);
请注意,它直接从配置中拉出主机。
任何想法这个场景的最佳实践是什么?
答案 0 :(得分:1)
有一个SmtpClient constructor,它接受一个主机名和端口。您可以拥有一个服务器列表,尝试发送邮件,如果服务器不可用,它将抛出一个异常,您将从列表中捕获并重试其他服务器。
答案 1 :(得分:1)
<network host="localhost" port=...
并将本地SMTP传输配置为中继到您的rendundant服务器。 这样你就不会因为短暂的网络问题而丢失电子邮件(本地MTA只会保留它们)。