System.net.mail.mailmessage Conteúdo bruto / assassino de spam
-
22-07-2019 - |
Pergunta
O que estou tentando fazer é passar o conteúdo bruto de um email de saída para o Spamassassin para calcular uma pontuação de spam. Estou preso na maneira como posso obter o conteúdo bruto do email.
Meu código C# atualmente apenas constrói o MailMessage e passa o método send () smtpClient's send (). Antes de enviar, existe uma maneira de obter uma versão bruta da mensagem de correio (como o protocolo pode vê -la) para que eu possa passar isso para a ferramenta Spamassassin para avaliação de spam?
Se eu não expliquei muito bem, me avise e tentarei explicar melhor.
Desde já, obrigado,
Martin.
Solução
Eu resolvi uma solução para o meu problema.
A classe SMTPClient possui duas propriedades que podem ser definidas que fazem com que o email seja armazenado em um arquivo EML, em vez de realmente ser enviado. O objetivo original disso é para que o email possa ser gerado com SMTPClient, mas realmente pego e enviado por outro servidor SMTP.
SmtpClient.DeliveryMethod
SmtpClient.PickupDirectoryLocation
Se o smtpclient.deliverymethod estiver definido como smtpdeliverymethod.specicifiedpickupDirectory e smtpclient.pickupdirectoryLocation for definido para o caminho completo de algum diretório na máquina, depois chamando smtpclient.send (MailMessa); faz com que seja salvo.
Por sua vez, o arquivo EML recém -criado pode ser transmitido para o SpamasSassin diretamente na linha de comando para obter a pontuação de spam de que eu precisava.
Espero que esta informação ajude qualquer outra pessoa com esse problema.
Atenciosamente,
Martin.