Проверка IIS SMTP-сообщений - PullRequest
3 голосов
/ 20 марта 2009

Есть ли способ просмотреть или просмотреть сообщение, прежде чем оно попадет на SMTP в IIS. Это не Exchange Server, он просто работает SMTP. Я пытаюсь проверить, могу ли я посмотреть сообщение и затем передать его SMTP?

Спасибо

Редактировать ~ Вместо добавления другого списка, мне интересно, есть ли способ связать со стандартным списком SMTP и перехватить сообщение, а затем передать его.

2nd Edit ~ Ok, вот моя проблема. У меня есть спам-фильтр перед моей коробкой обмена, к сожалению (из-за дизайна программного обеспечения) фильтр ограничен, когда дело доходит до "Сбор урожая каталогов". Это процесс, при котором адреса электронной почты проверяются, если они существуют в AD, а почта отбрасывается, если их нет. Мой текущий фильтр отбрасывает почту, если один из адресов не существует в AD, что не годится. Я говорил с продавцом, и в настоящее время они ничего не могут сделать. Я смотрю, поставил приложение перед этим фильтром, который будет перехватывать (открывать, читать, анализировать) почту, проверять адреса, а затем передавать почту фильтру для дополнительного сканирования. Затем я отключу эту функцию в их программном обеспечении. Не поймите меня неправильно, их фильтр отлично работает с этим единственным исключением, которое я должен исправить, так как у меня есть тонны электронных писем, отправленных несуществующим пользователям в моем домене.

Ответы [ 5 ]

2 голосов
/ 20 марта 2009

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

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

1 голос
/ 20 марта 2009

Если вы используете .NET 2.0, вы можете записывать SMTP-сессии в файл:

Как создать файл журнала сеанса SMTP? (System.Net.Mail)

Обновлен:

Посмотрите на этот вопрос:

Тестирование SMTP с .net (переполнение стека)

Из ваших правок:

«Мне интересно, есть ли способ связать с прослушивателем SMTP по умолчанию и перехватить сообщение и передать его дальше?»

... и из вашего комментария ниже:

«Я хочу проверить фактическое сообщение до того, как SMTP получит его».

Я не уверен, что вы полностью понимаете протокол SMTP. SMTP-сообщения - это не просто монолитные объекты «забей и забудь». SMTP основан на сеансе, и между клиентом и сервером существует диалог, сообщение которого является лишь частью. Метод трассировки (связанный с вышеупомянутым) записывает весь обмен между клиентом и сервером и перехватывает все сообщение перед его передачей. Альтернатива, прокси или фиктивный сервер, по-прежнему будет требовать от вашего приложения участия в обмене клиент / сервер SMTP. Наиболее близким решением к вашему требованию было бы использовать что-то вроде Papercut , о чем говорится в ответе выше.

Кев

0 голосов
/ 26 марта 2009

Похоже, что-то вроде Ethereal позволит вам выполнить часть вашего запроса. Мне не ясно, что вы подразумеваете под «перехватывать» и «передавать». Вы хотите отфильтровать некоторый трафик или просто задержать трафик достаточно долго, чтобы вы могли его осмотреть, прежде чем передать его, или и то, и другое?

0 голосов
/ 23 марта 2009

IIRC, вы все еще можете записать приемники событий для службы IIS SMTP (даже если это не полный обмен). Прошло много лет с тех пор, как я это сделал, но, возможно, вы захотите зайти в Google, чтобы найти «обмен событиями», чтобы узнать, поможет ли это.

0 голосов
/ 20 марта 2009

В .Net вы можете указать SmtpClient отправлять электронную почту в папку, отличную от отслеживаемой службой SMTP. Таким образом, вы можете проверить каждое сообщение, а затем переместить его в настоящую папку раскладки. (См. SmtpClient.PickupDirectory )

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