Как реализовать функцию электронной почты для веб-приложения? - PullRequest
8 голосов
/ 15 июля 2009

Вы, вероятно, видели веб-приложения, в которых есть "почтовый ящик". Пользователи могут отправлять электронную почту на специальный адрес, такой как dropbox@123232.wepapp.com, и сообщение будет проанализировано и вставлено в их учетную запись в виде комментария, списка дел и т. Д.

Мы пытаемся построить что-то подобное, и думаем, какой путь будет лучше? Является ли dropbox@123232.wepapp.com определенной учетной записью электронной почты или псевдонимом? Или это не так, и они используют универсальную учетную запись электронной почты, а затем просто анализируют адрес «Кому», чтобы определить, с какой учетной записью связать его? Может ли это также быть определенный почтовый ящик с именем «dropbox», и поскольку они используют динамические субдомены, все электронные письма доставляются в один большой почтовый ящик, а затем анализируются на основе адреса «Кому» сообщений?

Ответы [ 2 ]

9 голосов
/ 15 июля 2009

Я предлагаю создать перехват всех адресов электронной почты с псевдонимом подстановочного знака для субдомена учетной записи. DropBox@*.yourdomain.com

Субдомен - это псевдоним вашего почтового сервера, который указывает на реальную учетную запись на вашем почтовом сервере DropBox@yourdomain.com.

Затем пользователи могут отправлять электронные письма на что-то вроде DropBox@myusername.yourdomain.com, которые будут проанализированы по псевдониму и направлены на физический адрес электронной почты.

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

Обычно это работает довольно хорошо и на самом деле очень легко реализовать.

Обновление: Я начал писать серию из 3 частей на DotNetSlackers.com, специально посвященную этой теме. Он охватывает настройку и настройку сервера электронной почты, код для подключения к поп-серверу из C # и обработку, которая должна выполняться для обработки входящей почты. Он оборачивается, помещая все эти функции в Служба Windows, так что инструмент работает сам по себе (а также выход в файловую систему). Дайте мне знать, если статьи не охватывают что-то! (Первый из них уже готов. Два других представлены, а второй опубликован 29.07.2009. Третий должен быть выпущен на следующей неделе.)

http://dotnetslackers.com/articles/aspnet/Creating-a-Dynamic-Email-Drop-Box-Part1.aspx

1 голос
/ 15 июля 2009

Парсинг адреса «Кому:» определенно работает, хотя вы захотите посмотреть на несколько других в случае, если электронная почта была Bcc или что-то в этом роде.

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

Вы должны быть в состоянии найти библиотеку для грязной работы по загрузке и синтаксическому анализу писем на выбранном вами языке, что делает это довольно простой задачей, поскольку ваше веб-приложение уже имеет RESTful API, верно?

...