Как мне создать сервис отправки электронной почты? - PullRequest
4 голосов
/ 03 октября 2008

Я некоторое время разбирался с этой идеей и хотел бы прочитать ваши мысли.

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

Мои грубые идеи:

  1. В различных приложениях сериализуйте экземпляры объектов электронной почты .NET (System.Net.Mail.MailMessage) и помещайте их в очередь базы данных или файловой системы

  2. Почтовая служба / процесс опрашивает очередь и отправляет электронные письма

  3. Обеспечить подписку / отписаться списки / правила

  4. Отслеживание открытий, отказов, автоответов при отсутствии на работе и т. Д.

  5. Отчет о статусах обратно к исходным приложениям

У кого-нибудь есть совет, как мне начать работу или какие у меня могут быть проблемы? Есть ли в наличии готовое программное обеспечение / сервис, на которые мне следует обратить внимание?

Ответы [ 3 ]

4 голосов
/ 03 октября 2008

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

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

Классы электронной почты System.Net не позволяют вам устанавливать MAIL FROM в разговоре с MTA, не устанавливая при этом адрес From в заголовке электронной почты на то же самое, поэтому вам нужно будет использовать стороннюю библиотеку например, aspNetEmail , если вам нужны разные адреса.

ListNanny - это еще один инструмент, который помогает анализировать отчеты о недоставке среди других функций.

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

1 голос
/ 20 июля 2010

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

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

Для транзакционной электронной почты (подтверждения регистрации учетной записи, отчетов о состоянии учетной записи, выставления счетов и т. Д.) Ознакомьтесь с этой ТАК для поставщиков с API-интерфейсами, удобными для веб-приложений.

Для рассылки рекламных рассылок и массовых рассылок ознакомьтесь с этой ТАК . Я только что добавил MailChimp в этот список.

1 голос
/ 03 октября 2008

Вы можете найти некоторые ответы на Обработка недоставленных писем в веб-приложении полезными.

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