System.Net.Mail.MailMessage Raw Content / Спам-убийца

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

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

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

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

Мартин.

1 ответ

Решение

Я разработал решение моей проблемы.

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

SmtpClient.DeliveryMethod
SmtpClient.PickupDirectoryLocation

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

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

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

С уважением,

Мартин.

Другие вопросы по тегам