Каков наилучший способ обработки нескольких почтовых серверов в разделе mailSettings файла web.config? - PullRequest
3 голосов
/ 20 августа 2010

У меня есть приложение, которое отправляет 500K + транзакционных писем в месяц. Некоторые важнее других. Мне нужно, чтобы важные электронные письма отправлялись по электронной почте с высокой доставкой и отслеживанием (читай дороже), а менее важные электронные письма - с помощью обычного почтового сервера.

Есть ли способ настроить несколько разделов smtp в mailSettings, указывающих на два почтовых сервера, и позволить коду выбрать, с какого почтового сервера они хотят отправлять сообщения.

Есть способ сделать это, используя "местоположение", и страницы обрабатывают отправку электронной почты, выбирая сервер smtp в зависимости от пути. Однако у меня есть отдельный фоновый процесс, который делает это асинхронно, и это мало поможет.

Спасибо!

1 Ответ

1 голос
/ 20 августа 2010

Вместо использования настроек почты, возможно, стоит рассмотреть использование настроек приложений для хранения строк подключения к вашему серверу.

<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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...