企业空间 采购商城 存储论坛
华为全闪存阵列 IBM云计算 Acronis 安克诺斯 安腾普 腾保数据
首页 > 技术园地 > 邮件服务器 > 正文

PHP发送邮件出现乱码的解决办法

2014-12-28 20:45来源:中国存储网
导读:在工作中遇到的一些问题,拿出来给大家分享一下!这只是我所遇到的问题的解决方案,此方法也许不能解决所有的问题,当然还得具体问题具体分析了!邮件主题的乱码解决:例如:邮件的主题用变量$subject,在取得到的主题后加上下面一句,这样标题乱码就解决了$s

在工作中遇到的一些问题,拿出来给大家分享一下!这只是我所遇到的问题的解决方案,此方法也许不能解决所有的问题,当然还得具体问题具体分析了!

邮件主题的乱码解决:
例如:邮件的主题用变量$subject,在取得到的主题后加上下面一句,这样标题乱码就解决了
$subject = "=?GB2312?B?".base64_encode($subject)."?=";

邮件内容的乱码解决:
并且在发送邮件的类文件smtpfunction.php中,在定义发送邮件的函数sendmail修改如下:
<?php
function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "")
{
$mail_from = $this->get_address($this->strip_comment($from));
$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
$header .= "MIME-Version:1.0\r\n";
if($mailtype=="HTML"){
$header .= "Content-Type:text/html; charset=gb2312 \r\n";//这里的gb2312设置一下
}
$header .= "To: ".$to."\r\n";
if ($cc != "") {
$header .= "Cc: ".$cc."\r\n";
}

$header .= "From: $from<".$from.">\r\n";
$header .= "Subject: ".$subject."\r\n";
$header .= $additional_headers;
$header .= "Date: ".date("r")."\r\n";
//$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";
$header .= "X-Mailer:By Microsoft Outlook Express 5.00.2615.200\r\n";
list($msec, $sec) = explode(" ", microtime());
$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n";
$TO = explode(",", $this->strip_comment($to));
if ($cc != "") {
$TO = array_merge($TO, explode(",", $this->strip_comment($cc)));
}

if ($bcc != "") {
$TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));
}
$sent = TRUE;
foreach ($TO as $rcpt_to) {
$rcpt_to = $this->get_address($rcpt_to);
if (!$this->smtp_sockopen($rcpt_to)) {
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n");
$sent = FALSE;
continue;
}
?>

继续阅读
相关阅读
  • Sendmail的安全配置,账户、权限、验证、拒绝攻击配置

    sendmail已经逐渐加强了它的安全性,现在,在它相信一个文件(比如说.forward或aliases)之前,它对文件权限是非常挑剔的。虽然这种安全性的加强通常会受到欢迎

  • 带你认识Sendmail及其工作方式

    sendmail是一个传输代理,一个在用户代理和投递代理间充当桥梁的程序。它使用SMTP协议进行通信,通过Internet把消息投递给远程机器上的对等传输代理。

  • centos linux下sendmail的配置

    开启Sendmail服务器的网络接口 vi /etc/mail/sendmail.mc,DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1,Name=MTA')dn1 将127.0.0.1改为0.0.0.0使服务器能够为主

  • IBM aix系统下sendmail的使用方法详解

    主机运行的是sendmail8.12.1。版本号一般由被两个圆点分开的三个数字组成。当前运行的绝大多数是sendmail 8.x.x。如果在sendmail服务器上,可以运行sendmail -d0.4来查看版

  • 如何在python程序中发邮件

    以前的公司上班上网或者收发邮件都得小心翼翼的,怕一不小心被有心人瞧见,又得被说说。为了能发邮件而不被发现,嘿嘿,我就用python写了个邮件发送程序,用控制台控制,不

  • Linux邮件服务器Postfix详细配置过程

    1. 系统安装:1)centos4.3 选上MAIL组件里的全部。2)hostname: mail.51test.com2。搭建域名服务器DNS:设置mail.51test.com ==192.168.1.223,并PING、NSLOOKUUP测试。注意

产品推荐
头条阅读
栏目热点

Copyright @ 2006-2018 ChinaStor.COM 版权所有 京ICP备14047533号

中国存储网

存储第一站,存储门户,存储在线交流平台