Если я использую.NET (Система. Сеть. Почта) для пакетной обработки посылают электронные письма моего веб-приложения или SQL (msdb.sp_send_dbmail)?

Сценарий:

1) Моим приложением является.NET, 3.5 веб-приложениями C# и базой данных является SQL 2008.

2) Электронные письма будут в регионе 100 - 1 000 в день и инициированы различными взаимодействиями интернет-пользователя с приложением.

3) Большинство электронных писем будет содержать вложение (вложения) между 50 КБ и 5 МБ. Некоторыми электронными письмами будет HTML, и некоторые будут простым текстом.

4) Все вложения будут получены из каталога на веб-сервере.

5) SQL-сервер является отдельной машиной к веб-серверу. Все соединения SQL из приложения являются через логины SQL не аутентификацией Windows.

6) Для масштабируемого решения электронные письма, которые будут отправлены, будут поставлены в очередь в таблице базы данных, готовой к пакетной обработке к погрузке. Неудавшиеся электронные письма должны быть повторены до 4 раз.

Дилемма:

Я не уверен, записать ли решение для веб-сервера послать электронные письма (например, сервис окон, который опрашивает электронные письма, готовые отправить) или возможно использовать почту базы данных SQL, которую легко установить и использовать и не требует большой разработки.

Факт вложения находятся на веб-сервере, предлагает мне использовать решение для веб-сервера, но мне было бы интересно видеть, пропустил ли я что-то.

6
задан iandayman 24 June 2010 в 12:00
поделиться

3 ответа

Во-первых, будьте осторожны с отправкой тысяч электронных писем в день пакетами. Это хороший способ попасть в черный список других почтовых серверов или даже вашего интернет-провайдера. Во-вторых, я бы порекомендовал использовать .NET. Эта проблема попахивает службой. Даже если вы не создаете его как услугу сегодня, вы можете захотеть сделать это в какой-то момент в будущем. С помощью .NET вы можете реорганизовать свое решение для параллельной отправки электронных писем или доступа к очереди в многопоточном режиме. Все это было бы сложно в SQL Server. Короче говоря, .NET дает вам возможность создавать более расширяемые решения, чем SQL Server.

2
ответ дан 17 December 2019 в 00:03
поделиться

Думаю, вы сами ответили на свой вопрос. Поскольку вы выбрали постановку электронных писем в очередь в базе данных IMO, создание управляемого решения на веб-сервере для отправки электронных писем будет небольшим преимуществом.

Я бы принял во внимание тот факт, что вы храните вложения на веб-сервере. Это означает, что сетевой трафик между веб-сервером и базой данных будет больше, чем если бы веб-сервер отправлял электронные письма (при условии, что они работают на разных физических устройствах). серверов). Судя по вашим цифрам, это может составлять 5 ГБ трафика в день во вложениях. Однако я бы выбрал решение DB и тщательно протестировал бы его, чтобы увидеть, не станет ли трафик проблемой. Если это так, вы не потеряли много времени на разработку решения для БД.

3
ответ дан 17 December 2019 в 00:03
поделиться

Я бы предпочел .NET вместо отправки писем из БД. Отправка электронных писем в .NET также очень проста и не требует каких-либо значительных затрат времени на настройку или разработку.

Кстати, я понятия не имею, почему SQL Server может отправлять электронные письма, поскольку эта функция, похоже, не соответствует модели хранения данных. SQL Server также выполняет 3D-рендеринг?

2
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: