Лучший способ, который вы можете использовать, чтобы избежать неприятностей в будущем, - это не отправлять электронную почту прямо из вашего веб-приложения. Вместо этого, напишите электронное письмо (или информацию, которая вам необходима для генерации электронного письма) в базу данных и сделайте рассылку отдельным процессом.
Подумайте, что происходит, когда ваш SMTP-сервер не работает и ваше приложение пытается отправить. Если у вас есть отдельный процесс отправки электронной почты, вы можете отправить электронное письмо позже, когда его резервная копия.
Также вы получаете возможность ограничить скорость исходящей электронной почты. Если вы в конечном итоге с Next Big Thing & reg; в ваших руках вы будете рады, что теперь у вас есть возможность расставлять приоритеты в исходящей почте или отправлять списки рассылки в пакетном режиме вместо того, чтобы сокрушать ваш SMTP-сервер в разгар трафика вашего сайта.
Если вы работаете с отказов, просто используйте этот процесс. Теперь у вас есть возможность записать возвращенный адрес электронной почты в черный список и проверять тот же список для каждого исходящего электронного письма. Вы ни в коем случае не хотите помещать все это в свое веб-приложение.
Независимо от того, что вы еще придумали, рассмотрите возможность написания электронного письма для отправки в базу данных и предоставления вашему приложению возможности для работы. Вы все еще можете получить сообщение в режиме реального времени, но вы можете получить действительно хорошее разделение проблем без особых усилий.