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.1
X-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 address
function base64($string){
    if (!$string) {
        return null;
    }
    $array = explode(‘,‘, $string);
    foreach ($array as &$a) {
        $a = trim($a);
        if (preg_match(‘/(.*)(<[^>][email protected][^>]+>)$/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/

时间: 2024-11-08 23:51:47

html格式邮件垃圾率过高的处理办法的相关文章

如何检测邮件打开率-技术性问题

之前的博文也有介绍邮件打开率这个概念.现在本文主要给大家介绍一下如何检测邮件打开率. 常用的检测方法是:在邮件内容中插入一个1px的跟踪图片文件.当邮件被打开时,就会自动加载这个1px的图片.只要知道这个图片的加载次数,就可以相应的得到邮件被打开的次数. 这个方法是目前使用的非常普遍的方法之一.希望大家能够掌握这个方法. 如何检测邮件打开率-技术性问题,布布扣,bubuko.com

利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)

Spring提供了发送电子邮件的支持,可以发送普通邮件.带附件邮件.HTML格式邮件,甚至还可以使用Velocity模板定制化邮件内容. 一.引入相关的库 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!-- spring核心库 -->         <dependency>             <groupId>org.springframework<

C#发送内置图片的html格式邮件的代码

将写内容过程经常用的内容段备份一次,下面的内容是关于C#发送内置图片的html格式邮件的内容,应该对码农们也有用处.MailMessage m = new MailMessage();m.Subject = "html email with embedded image coming!"; string htmlBody = "<html><body><h1>Picture</h1><br><img src=&

django-29.发送html格式邮件

上一篇已经通过send_mail()函数发送纯文本的邮件,发送成功了,如果我们想发送一个html格式的邮件,如何实现呢?发送html格式的邮件实际上还是调用send_mail()函数 ,只需多加一个html_message参数 html_message参数 从上一篇的send_mail()函数里面可以看出,里面有个参数html_message默认是为None,部分源码如下 mail = EmailMultiAlternatives(subject, message, from_email, re

加一度分享:解决竞价推广跳出率太高的方法

竞价推广跳出率是指访客只访问了一个页面便离开了网站,因而跳出率太高会导致有流量没转化,白白浪费钱.那么如何降低跳出率,提高推广效果成为竞价员必须要解决的问题. 想要解决问题,先要找到原因.接下来,加一度将为竞价员详解跳出高的主要原因及解决方法 一.抵达率低 抵达率并不是竞价员日常分析数据的重点,很多人都不太看重甚至会忽略掉它.在此,我要提醒各位竞价员,正常情况的抵达率为PC端在90%以上,移动端是80%以上.若你的抵达率低于50%,那么绝对存在着不可忽视的问题.友情提示: 一定要检查网站在各个浏

[转] IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法

IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法 源文件:http://www.cnblogs.com/yuejin/p/3385584.html 当打开IIS管理器,或配置网站时提示错误:配置文件的XML格式不正确 且是applicationHost.config的问题,那么肯定是applicationHost.config被破坏,IIS就崩溃. 解决办法就是恢复applicationHost.config 先检查C:\Windows\Syste

js文件在IDEA中没有了格式,显示的是纯文本的解决办法

添加个Patterns就行了,名字为*.js js文件在IDEA中没有了格式,显示的是纯文本的解决办法

CHM格式的电子书打开是空白的解决办法

CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”.CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存. 然而很多情况下,CHM格式的电子书打开是空白.下面是几种解决方案: 解决方法 A 1. 双击此chm格式的电子书文件.2. 在“打开文件安全警告”对话框,单击以清除“打开此文件前始终询问”复选框. 3. 单击“打开”. 解决方法 B 1. 右键单击该 chm格式的电子书,然后单击“属性”.2. 单击“取消阻止”或者选

一般php创建的文件默认不是utf-8格式的,在网上搜罗的解决办法如下:

1.PHP本身是无编码的,所有的字符串通常都视为二进制流.因此只需要输入的字符串为Utf-8即可.若字符串采用其他编码,可以使用iconv系列函数转换编码. 2.注$content = iconv("utf-8","gb2312//IGNORE",$content);IGNORE忽略错误 <?php $f=fopen("test.txt", "wb"); $text=utf8_encode("a!")