문제

원격 SMTP 서버를 통해 이메일을 보내기 위해 System.Net.Mail.SmtpClient를 사용하고 있습니다. 보낸 메시지의 헤더를 보면 메시지가 X-Spam에서 2.5 개의 히트를받는 것을 알 수 있습니다. From 필드의 base64 인코딩을 어떻게 방지하고 NULL_IN_BODY 히트를 제거하는 방법은 무엇입니까? 스팸으로 표시되지 않더라도 완벽하길 바랍니다. 이 문제에 대한 정보를 찾을 수 없습니다 (정말 문제인 경우). 라코 디스

수정 : 필드의 모든 인코딩을 제거하여 가장 중요한 FROM_EXCESS_BASE64에 대한 경고를 제거했습니다. 이전에 필드에 대한 Encoding.UTF8를 수동으로 설정했습니다.

body 문자열에서 모든 제어 문자를 제거하면 더 이상 경고가 발생하지 않습니다. 그러나 이렇게하면 줄 바꿈도 제거됩니다. 라코 디스

편집 : 줄 바꿈을 제외한 모든 제어 문자를 제거하면 경고가 반환됩니다! 라코 디스

도움이 되었습니까?

해결책

이메일 본문이나 소스 코드를 보지 않고는 확실히 말할 수 없지만 다음 사항이 사실이라고 가정합니다.

  • 필요하지 않은 경우에도 From 헤더를 base64로 인코딩했습니다. SpamAssassin은이를 난독 화하려는 시도로 간주합니다. http://wiki.apache.org/spamassassin/Rules / FROM_EXCESS_BASE64
  • 이메일 본문에 바이너리 데이터 (특히 null 바이트)가 있습니다. 예를 들어 UTF-16 (UTF-32)로 인코딩 된 텍스트를 이메일 본문에 덤프하는 경우 이러한 상황이 발생할 수 있습니다. 일반 영어 문자는 각각 2 바이트로 표시되고 그중 하나 (3)는 null입니다. / li>

    문제가 해결되지 않으면 전체 코드와 전체 메시지의 16 진수 덤프를 게시하세요.

    업데이트 :

    Char.IsControl은 CR 및 LF 문자 ( '\ r'및 '\ n')도 제거합니다. 코드를 삭제하지 않도록 변경하세요. 예 : 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top