首页 > 代码库 > html格式邮件垃圾率过高的处理办法
html格式邮件垃圾率过高的处理办法
原先的邮件采用Content-Type: text/html
下面是X-Spam的得分情况,当 score 超过6分就被当作垃圾邮件处理了
X-Spam-Status: Yes, score=6.3 required=6.0 tests=CONTENT_TYPE_PRESENT, DIRECTUNKNOWN,HTML_MESSAGE,MIME_HTML_ONLY,ONLY1HOPDIRECT,RDNS_NONE, TO_NO_BRKTS_FROM_MSSP,TO_NO_BRKTS_NORDNS_HTML,URIBL_BLOCKED,UTF8 autolearn=no version=3.3.1X-Spam-Report: * 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. * See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block * for more information. * [URIs: handbook.jp] * -0.1 CONTENT_TYPE_PRESENT exists:Content-Type * 0.3 DIRECTUNKNOWN directly received spam from suspicious dynamic IP * 1.0 ONLY1HOPDIRECT ONLY1HOPDIRECT * 1.0 HTML_MESSAGE BODY: HTML included in message * 0.4 MIME_HTML_ONLY BODY: Message only has text/html MIME parts * -0.1 UTF8 RAW: UTF-8 message body * 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS * 2.5 TO_NO_BRKTS_FROM_MSSP Multiple formatting errors * 0.0 TO_NO_BRKTS_NORDNS_HTML To: misformatted and no rDNS and HTML only
解决办法就是采用Content-Type: multipart/alternative
这种类型可以同时发送两种类型的邮件 text/plain 和 text/html, 大大降低邮件的 score
下面是采用multipart/alternative 这种类型的得分情况 因为低于6分 没有X-Spam-Report
X-Spam-Status: No, score=3.5 required=6.0 tests=CONTENT_TYPE_PRESENT, DIRECTUNKNOWN,HTML_MESSAGE,MULTIPART_ALTERNATIVE,ONLY1HOPDIRECT,RDNS_NONE, URIBL_BLOCKED,UTF8 autolearn=no version=3.3.1
下面是具体代码
function sendAlternativeMail($to, $from, $subject, $plainmessage, $htmlmessage, $bcc = null, $cc = null) { $to = base64($to); $from = base64($from); $subject = ‘=?UTF-8?B?‘ . base64_encode($subject) . ‘?=‘; $boundary = uniqid(‘np‘);
//set header $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: ".$from."\r\n"; $cc && $headers .= "Cc: $cc\n"; $bcc && $headers .= "Bcc: $bcc\n"; $headers .= "Content-Type: multipart/alternative;boundary=" . $boundary . "\r\n"; //set plain body $message = "\r\n\r\n--" . $boundary . "\r\n"; $message .= "Content-type: text/plain;charset=utf-8\r\n\r\n"; $message .= $plainmessage; //set html body $message .= "\r\n\r\n--" . $boundary . "\r\n"; $message .= "Content-type: text/html;charset=utf-8\r\n\r\n"; $message .= $htmlmessage; //end $message .= "\r\n\r\n--" . $boundary . "--"; return mail($to, $subject, $message, $headers);}
//encode email addressfunction base64($string){ if (!$string) { return null; } $array = explode(‘,‘, $string); foreach ($array as &$a) { $a = trim($a); if (preg_match(‘/(.*)(<[^>]+@[^>]+>)$/U‘, $a, $match)) { $a = ‘=?UTF-8?B?‘ . base64_encode($match[1]) . ‘?=‘ . $match[2]; } } return implode(‘,‘, $array);}
参考资料:http://krijnhoetmer.nl/stuff/php/html-plain-text-mail/
html格式邮件垃圾率过高的处理办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。