【转】解决mail()函数乱码问题

自己搞好了,参考了一下其他的发邮件的类。希望对大家以后有帮助啦,现在总结一下,有东西大家分享
^_^
问题:用mail()函数发送的,$mailsuccess=mail($to, $subject, $message, $headers);
$subject是邮件标题,$message是内容,$headers是头文件信息
$message内容的乱码,我是通过发送html的形式来指定页面编码来解决的,meta可以设置的,而指定使用html的$header里面Content-type: text/html; charset=UTF-8" . "\r\n";也可以设置,哪个起作用就不知道了
$subject的乱码是经过base64_encode()处理,然后设置一些信息,后解决的,$headers里指定发送者也是这种方法解决的,不过$headers变量不能整个编码,只能对发送者进行编码,否者,大家可以试下是什么结果^_^,下面把例子贴出来,大家一起研究下

对中文进行处理

PHP代码如下:
function Encode ( $str ){ //对中文进行编码
   
$str = base64_encode ( $str );
   
$str = "=?" . "UTF-8?B?" . $str . "?=" ;
    return
$str ;
   }
 




PHP代码如下:
$to   = [ email = example @ mail . com ] example @ mail . com [/ email ]; // to email
  
$post = "中文中文" ;
  
$subject = ' 中文中文;
   $userName=Encode($userName);
   $post=Encode($post);
   $subject=Encode($subject);
   $message = <<<eot
               <html>
      <head>
        <title>Active Member</title>
         <meta    http-equiv="Content-Type"    c    />
      </head>
      <body>
        <p>中文中文</p>
      </body>
      </html>
eot;
   $headers   = "MIME-Version: 1.0" . "\r\n";
   $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";//UTF-8
  
   // Additional headers
   $headers .= "To: $userName [email=example@mail.com]example@mail.com[/email]" . "\r\n";
   $headers .= "From:$post<[email=apache@inhouse.youtig.com]ex[/email]ample@mail.com>" . "\r\n";//$post是一般的邮箱显示的发送者,英文当然没问题了,中文就必须处理
   $headers .= "Cc: [email=example@mail.com]example@mail.com[/email]" . "\r\n";
   $headers .= "Bcc:[email=example@mail.com]example@mail.com[/email]". "\r\n";
   $mailsuccess=mail($to, $subject, $message, $headers);



辛苦,一个小问题搞了一天,希望明天大家会更加好

转载于:https://www.cnblogs.com/7bus/archive/2010/09/05/1818614.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值