SMTP ретрансляция в C #? - PullRequest
4 голосов
/ 02 ноября 2009

Мне нужно создать службу Windows, которая может прослушивать SMTP .

Когда он получает электронное письмо, мне нужно его обработать, а затем переслать на мой настоящий SMTP-сервер для правильной отправки.

Может ли кто-нибудь указать мне на любой полезный исходный код, библиотеки или учебные пособия о том, как я могу начать делать это?

Похоже, все, что мне нужно, это простой прослушиватель TCP и анализатор сообщений, тогда я могу просто повторно отправить сообщение с помощью API .NET SmtpClient?

Ответы [ 3 ]

4 голосов
/ 02 ноября 2009

Я не знаю всех ваших требований, но служба SMTP IIS может сохранить входящую электронную почту в каталог / Drop. Вместо того чтобы писать полноценную службу TCP / IP, вы можете просто написать службу мониторинга файлов, которая отслеживает каталог / Drop на наличие новых писем, анализирует их и выполняет ваши собственные действия с ними.

3 голосов
/ 02 ноября 2009

Эрик Даугерти имеет C # сервер электронной почты на sourceforge . Это сделает сервер. Для пересылки сообщений на другой SMTP-сервер может использоваться класс System.Net.Mail.SmtpClient по умолчанию.

Или вы пишете пользовательский элемент привязки транспорта для WCF (шутка).

2 голосов
/ 02 ноября 2009

Вы, вероятно, хотите проверить эту ссылку . В статье говорится, что «MailServerComponent реализует POP3 и SMTP (основные) серверы. Он обрабатывает низкоуровневые команды POP3 и SMTP и вызывает события в соответствии с ним. Сервис MailServer просто обрабатывает события MailServerComponent и выполняет работу по извлечению и сохранению почты». По крайней мере, это может послужить вам отправной точкой.

И вы правы, вы можете реализовать свой собственный прослушиватель сокетов (TCP), который обрабатывает и обрабатывает все необходимые SMTP-сообщения. Проверьте спецификации протокола здесь .

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