Типичный прослушиватель электронной почты / мини-сервер на Java или .NET - PullRequest
2 голосов
/ 12 августа 2010

Мне стыдно за то, что я не знаю протоколов SMTP / POP3 / IMAP, Как бы я ни думал, я знаю, HTTP и TCP / IP, кажется, что я воспринял электронную почту как должное, и мне никогда не приходилось писать какой-либо кусок кода, который будет делать, кроме отправки электронной почты через существующий сервер SMTP.

Моя задача написать входящий канал электронной почты, и я хотел бы услышать, каков основной подход

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

Ответы [ 4 ]

4 голосов
/ 12 августа 2010

Я понимаю, что вы хотите получать почту программным способом ... используйте subethasmtp (намного легче и проще, чем james и т. Д., Работает очень хорошо.

3 голосов
/ 12 августа 2010

Если вы хотите, чтобы ваш сервер получал электронную почту, вам нужен SMTP-сервер.

(Вам также необходимо убедиться, что адрес электронной почты настроен для отправки на адресэтот сервер через запись MX в DNS.)

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

Вы можете использовать что-то вроде Postfix и настроить его на использование pipe для этого адреса, чтобы отправить электронное письмо.-почта для обработки в программе по вашему выбору (в том числе тот, который вы разрабатываете самостоятельно).Я уверен, что Exim, Sendmail и другие MTA имеют схожие функции.С такой конфигурацией ваше приложение обычно должно иметь возможность читать электронную почту со стандартного ввода (и иметь возможность разбивать / обрабатывать заголовки и тело), ​​но обычно это намного проще, чем написание MTA / SMTP-сервера.

Если вы действительно хотите более тесную интеграцию с MTA, возможно, это может быть хорошей отправной точкой (я никогда не пробовал): http://james.apache.org/

3 голосов
/ 12 августа 2010

SMTP-сервер - это, как правило, способ обращения к серверу исходящей почты;он отправляет почту.

POP и IMAP позволяют вам подключаться к почтовому серверу, чтобы читать почту, которая уже была получена.

Вам нужна SMTP на стороне приема / сервера, и вы можетеизвлечь выгоду из чтения на MTA ;агент пересылки почты.

Возможно, вам также будет интересно узнать о SMTP-прокси;Итак, отправленная почта прошла бы через ваш сервер - и могла быть отфильтрована / прослушана, я полагаю - и затем отправлена ​​дальше фактическому получателю.

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

Используйте JavaMail API

...