System.Net.Mail.MailMessage Raw Content / Спам-убийца - PullRequest
4 голосов
/ 15 января 2009

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

Мой код C # в настоящее время просто создает MailMessage и передает его в метод SmtpClient Send (). Перед отправкой есть ли способ получить необработанную версию почтового сообщения (как это может видеть протокол), чтобы я мог передать ее инструменту spamassassin для оценки спама?

Если я не очень хорошо объяснил, дайте мне знать, и я постараюсь объяснить лучше.

Заранее спасибо,

Martin.

1 Ответ

6 голосов
/ 15 января 2009

Я нашел решение своей проблемы.

Класс SmtpClient имеет два свойства, которые можно установить, чтобы электронная почта сохранялась в файле EML, а не отправлялась фактически. Первоначальная цель этого заключается в том, чтобы электронное письмо могло быть сгенерировано с помощью SmtpClient, но фактически было получено и отправлено другим SMTP-сервером.

SmtpClient.DeliveryMethod
SmtpClient.PickupDirectoryLocation

Если для SmtpClient.DeliveryMethod установлено значение SmtpDeliveryMethod.SpecifiedPickupDirectory, а для SmtpClient.PickupDirectoryLocation задан полный путь к некоторому каталогу на машине, то вызывается SmtpClient.Send (mailMessage); заставляет это быть сохраненным.

В свою очередь, вновь созданный файл EML может быть передан spamassassin непосредственно в командной строке для получения необходимого мне количества спама.

Надеюсь, что эта информация поможет кому-либо еще с этой проблемой.

С уважением,

Martin.

...