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 непосредственно в командной строке для получения необходимого мне балла за спам.
Надеюсь, что эта информация поможет кому-либо еще с этой проблемой.
С уважением,
Мартин.