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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top