2009-04-23 3 views
0

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

В ходе расследования я могу извлечь всю необходимую информацию из базы данных и создать электронное письмо с прикрепленными файлами и отправить их с использованием встроенной функции почты (как Oracle, так и SQL Server).

Моим другим вариантом является создание электронной почты в моем коде приложения.

Как мне не нужно какое-либо причудливое форматирование по электронной почте, какой был бы лучший способ сделать это? Кажется, нет никакой разницы в достижении моей цели; единственное преимущество использования БД состоит в том, что я могу настроить отправку электронной почты на триггер обновляемой строки.

ответ

5

Я бы сделал это в коде приложения. Оставьте хранилище данных в базе данных и оставьте прикладную логику в приложении.

+0

Я полностью от души согласен. – Russ

+0

Скажите, что у вас есть веб-приложение, говорят, что функциональность диктует, что «многие» могут подписаться на событие (скажем, его изменение на данные), которое происходит в веб-приложении, и получит электронное письмо, когда оно произойдет. OnSave Я не должен ожидать, что пользователь будет ждать, пока будут отправлены сотни писем. Если это будет в моем приложении, которое оставит меня написать услугу, чтобы опросить набор писем, ожидающих отправки. Почему я должен написать это сам, когда функциональность уже находится в SQL Mail? –

2

Мы отправили электронные письма в обоих направлениях в приложениях, разработанных для нашей корпорации. В конечном итоге метод приложения значительно улучшился. Обработка ошибок воспринимается как само собой разумеющееся в приложениях, но механизм базы данных может или не умереть из-за ошибок формата адреса и т. Д., И было сложно отслеживать ошибку позже.

1

Если вы поместите его в код приложения, это будет проще разбить процесс на небольшие проверяемые части.

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

1

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

У нас есть система отчетов о происшествиях, которая отправляет электронное письмо при вводе инцидента. Не осознавая объем писем, мы бы изначально просто отправили партию по 100 за раз (ограничения SMTP) и пропустили через группы, если бы было больше того - после некоторых продаж мы обнаружили, что было отправлено свыше 1000 человек на каждую запись, и для их отправки может потребоваться почти минута - создание почтового потока было не очень хорошим для этого, поэтому мы создали почтовый ящик и через каждые 5 минут пропустили цикл работы и отправили любые, которые не были отправлены - ошибка - если очередь поднялась или если в очереди было так много писем, что потребовалось больше 5 минут, она начнется снова, и у нас есть несколько писем, отправляемых 2, 3 4, даже 10 раз - возможно, был плохим дизайном, но независимо от того, что

Мы окончательно переместили все это в почтовый сервер SQL Servers, и он работает как чемпион - настоящий урок (на мой взгляд) - это сделать всю обработку howev вам нужно войти в свою программу, но как только вы узнаете, что электронные письма должны быть отправлены и кому передать это, что-то, что специально обрабатывает отправку электронной почты (CDO, Sql Server mail, Oracle независимо)

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

Смежные вопросы