Шаблоны электронной почты ASP.NET - PullRequest
2 голосов
/ 11 августа 2010

Приложение ASP.NET Webforms.

Проблема : Как элегантно реализовать электронную почту?

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

У меня есть возможность использовать собственный SMTP-сервер (приложение размещено на VPS) или использовать хостинг-провайдеров.

Я бы тоже хотел начать регистрацию здесь (вероятно, log4net)

Какие-либо предложения для библиотек по использованию / шаблонам для реализации?

РЕДАКТИРОВАТЬ: http://martinnormark.com/2010/03/13/generate-html-e-mail-body-in-c-using-templates

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

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

Для тестирования с поддельным SMTP-сервером используйте ndumbster .У Фила Хаака есть запись в блоге об использовании - http://haacked.com/archive/2006/05/30/ATestingMailServerForUnitTestingEmailFunctionality.aspx

Как вы отметили, шаблоны электронной почты просто фантастические.Попробуйте создать шаблон для HTML и обычного текста.Убедитесь, что ваши шаблоны электронной почты HTML используют базовый HTML, так как число почтовых клиентов не соответствует современным стандартам браузеров (например, Outlook, который использует движок рендеринга Word HTML).

Хорошим аргументом является Log4Net.начать с регистрации.Вы также можете использовать System.Diagnostics для упрощенной трассировки и отладки, которые могут быть легко записаны в журнал событий или файл.Я всегда предпочитаю иметь оболочку для всех журналов, чтобы можно было легко поменять каркасы журналов, если вы обнаружите, что хотите поменять их позже из-за обязательной функции.Это также хорошо с точки зрения тестируемости, так как вы можете легко смоделировать его.

На самом деле не имеет значения, какой SMTP-сервер вы используете, если вы не попали в черный список.Убедитесь, что вы сравнили IP-адрес SMTP-серверов с DNSBL , чтобы знать, имеет ли ваш SMTP-хост плохую репутациюЯ настоятельно рекомендую проверить его, используя IP-репутацию Barracuda Central - http://www.barracudacentral.org/lookups. Также убедитесь, что ваш SMTP-сервер поддерживает повторную отправку, когда ваши получатели используют серый список .

ДляОтскок назад вы можете настроить учетную запись POP для отправки на нее, это может быть так же просто, как чтение электронных писем и выяснение, с какой учетной записи электронной почты пришло отклонение, и темы предыдущего электронного письма (которая должна быть уникальной), чтобы вы моглиотправить снова позже или после нескольких отказов удалить их из списка.Чтобы реализовать чтение POP, взгляните на эту ветку - Чтение электронной почты с использованием Pop3 в C #

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

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

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

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

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

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

0 голосов
/ 11 августа 2010

Что касается входящих сообщений, я добился большого успеха с hMailServer , который является бесплатным почтовым сервером для Microsoft Windows.Он поддерживает общие протоколы электронной почты (IMAP, SMTP и POP3) и может быть легко интегрирован со многими существующими системами веб-почты.Он обладает гибкой защитой от спама и может подключаться к вашему антивирусному сканеру для сканирования всей входящей и исходящей электронной почты.Определенно стоит посмотреть.

Для исходящих писем мне нравятся шаблоны, которые я выразил в этой статье: .NET MailMessage, LinkedResources, AlternateViews и исключения

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