System.Net.Mail.SmtpClient
을 사용하여 원격 SMTP 서버를 통해 전자 메일을 보냅니다. 내가 보낸 메시지의 헤더를보고있을 때, 나는 그 메시지가 X 스팸으로부터 2.5 히트를받는 것을 본다. From
필드의 base64 인코딩을 어떻게 방지하고 NULL_IN_BODY
히트를 없앨 수 있습니까? 비록 그것이 스팸으로 표시되어 있지는 않지만, 나는 그것을 완벽하게하고 싶습니다. 이 문제와 관련된 정보를 찾을 수 없습니다 (실제로 문제가있는 경우).SmtpClient()를 통해 전송 된 메일의 X- 스팸 조회 감소
MIME-Version: 1.0
From: Myself <[email protected]>
To: [email protected]
Date: 25 Mar 2011 15:20:23 +0100
Subject: Test subject
Content-Type: text/plain; charset=us-ascii
X-Spam-Status: No, hits=0.5 required=5.0
X-Spam-Report: 0.5 hits, 5.0 required;
* -0.5 ALL_TRUSTED Passed through trusted hosts only via SMTP
* 1.0 NULL_IN_BODY FULL: Message has NUL (ASCII 0) byte in message
X-Virus-Scanned: by moam (http://www.moam.net/)
X-Moam-Version: 0.95
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by mx02.example.com id p2PEKKNs014451
Hello, sshow!
Below is your login information
Username: sshow
Password: a8sJdfl
Sent from http://me.myself.com
편집 : 나는 분야에 대한 모든 인코딩을 제거하여, 가장 중요한 하나 FROM_EXCESS_BASE64
에 대한 경고를 제거 할 수 있었다. 이전에이 필드에 수동으로 Encoding.UTF8
을 설정했습니다.
body
문자열에서 모든 제어 문자를 제거하면 더 이상 경고가 발생하지 않습니다. 그러나이 또한 줄 바꿈을 제거합니다.
foreach (char c in body)
{
stringBuilder.Append(Char.IsControl(c) ? ' ' : c);
}
편집 :은 행 구분을 제외한 모든 제어 문자를 제거 할 때 경고를 반환! 해당하는 경우 이메일이나 소스 코드의 몸을 보지 않고
foreach (char c in body)
{
stringBuilder.Append(Char.IsControl(c) && c != '\r' && c != '\n' ? ' ' : c);
}
이러한 문자는 From 헤더의'mailbox' 부분에 나타날 수 있습니다. – Anomie
@Anomie : 좋은 지적입니다. 내 대답을 좀 더 명확하게 업데이트했습니다. –
답장을 보내 주셔서 감사합니다. 내 편집 내용을 확인하십시오. – sshow