System.Net.Mail.MailMessage Необработанный контент / Убийца спама
-
22-07-2019 - |
Вопрос
То, что я пытаюсь сделать, это передать необработанное содержимое исходящего электронного письма в spamassassin, чтобы рассчитать показатель спама.Я застрял в том, как я мог бы получить исходное содержимое электронного письма.
Мой код на C # в настоящее время просто создает MailMessage и передает ему метод Send() SmtpClient .Перед отправкой есть ли способ получить исходную версию почтового сообщения (в том виде, в каком его может видеть протокол), чтобы я мог передать это инструменту spamassassin для оценки спама?
Если я объяснил не очень хорошо, дайте мне знать, и я постараюсь объяснить лучше.
Заранее спасибо,
Мартин.
Решение
Я нашел решение своей проблемы.
Класс SmtpClient имеет два свойства, которые можно задать, которые приводят к тому, что электронное письмо сохраняется в файле EML, а не фактически отправляется.Первоначальная цель этого заключается в том, чтобы электронное письмо могло быть сгенерировано с помощью SmtpClient, но на самом деле было принято и отправлено другим SMTP-сервером.
SmtpClient.DeliveryMethod
SmtpClient.PickupDirectoryLocation
Если для SmtpClient.DeliveryMethod задано значение SmtpDeliveryMethod.Указаны pickupdirectory и SmtpClient.Для PickupDirectoryLocation устанавливается полный путь к некоторому каталогу на компьютере, затем вызывается SmtpClient.Отправить (MailMessage);заставляет его быть сохраненным.
В свою очередь, вновь созданный EML-файл может быть передан в spamassassin непосредственно из командной строки, чтобы получить необходимый мне показатель спама.
Надеюсь, эта информация поможет кому-нибудь еще с этой проблемой.
С наилучшими пожеланиями,
Мартин.