有关phpmailer的详尽介绍及选用格局,phpmailer中文乱码难题的缓和措施

By admin in 4858.com on 2019年7月21日

1:打开phpmailer 大旨文件 class.phpmailer.php , 将 public $CharSet =
‘iso-8859-1′; 改为 public $CharSet = ‘UTF-8′;

多少个客户的PHP网址须要壹个邮件订阅效能,笔者动用八个在PHP开源程序中被多量接纳的次序
PHPmailer(PHPMailer_v2.0.4),在正确填写examples文件夹下的test_mail.php后测验邮件系统,被测量检验邮箱
能够吸纳邮件,然而title题目却一贯是乱码,故想到那个明确是PHP的编码难点,经过每每调节和测量检验终于找到消除办法:主题难题就是参与$mail->CharSet = “UTF-8”;以下是个人测量试验成功的phpmailer邮件系统

系统境况:windows7+wamp3

第一,供给下载PHPMailer文件包phpmailer.

第二,确认你的服务器系统现已支撑socket
,通过phpinfo();查看是还是不是协助sockets(socket
是属于PHP扩张部分),假使表现为“enabled”,那便是永葆了。
其三,把公文解压到您的web服务器目录下,调用类就可以了.
首先包括class.phpmailer.php,然后创设对象,设置参数,调用成员函数。

关于为啥要将’iso-8859-1′改为‘UTF-8’,请google或百度时而’iso-8859-1′就了然。

1.对此有着的知乎的邮箱(163.com,126.com,yeah.net等),一旦发送汉语(标题和正文)都会油不过生乱码;
2.还恐怕有,其余邮箱在发普通话时,正文都能健康突显,而标题还出现乱码;

情状供给:Gmail账号+open_ssl+PHPMailer;

例1,做成函数方便调用

2:设置邮件的编码;

实例:

1、默认意况下wamp3是未有展开Open_ssl的,那是急需修改php.ini,将extension=php_openssl.dll前面包车型大巴分店去掉;

复制代码 代码如下:

复制代码 代码如下:

test.php

2、下载PHPMailer
PHPMailer是一个用PHP写的用于邮件发送的类。能够下載最新的本子,笔者用的是PHPMailer_v5.0.2。

<?php   
    require(“phpmailer/class.phpmailer.php”);   
    function smtp_mail( $sendto_email, $subject, $body, $extra_hdrs,
$user_name){   
        $mail = new PHPMailer();   
        $mail->IsSMTP();                  // send via SMTP   
        $mail->Host = “200.162.244.66”;   // SMTP servers   
        $mail->SMTPAuth = true;           // turn on SMTP
authentication   
        $mail->Username = “yourmail”;     // SMTP username 
注意:普通邮件认证无需加 @域名   
        $mail->Password = “mailPassword”; // SMTP password   
        $mail->From = “yourmail@yourdomain.com”;      //
发件人邮箱   
        $mail->FromName =  “管理员”;  // 发件人   

$mail = new PHPMailer();
$mail->Charset=’UTF-8′;

 代码如下

3、将下好的包解压到服务器上,展开examples文件夾,然後在裏邊單獨建设构造一個PHP的測試文件(本身取名就好了),代碼為:

        $mail->CharSet = “GB2312”;   // 这里钦定字符集!   
        $mail->Encoding = “base64”;   
        $mail->AddAddress($sendto_email,”username”);  //
收件人邮箱和姓名   
       
$mail->AddReplyTo(“yourmail@yourdomain.com”,”yourdomain.com”);   
        //$mail->WordWrap = 50; // set word wrap 换行字数   
        //$mail->AddAttachment(“/var/tmp/file.tar.gz”); // attachment
附件   
        //$mail->AddAttachment(“/tmp/image.jpg”, “new.jpg”);   
        $mail->IsHTML(true);  // send as HTML   
        // 邮件核心   
        $mail->Subject = $subject;   
        // 邮件内容   
        $mail->Body = ”  
    <html><head>  
    <meta http-equiv=”Content-Language” content=”zh-cn”>  
    <meta http-equiv=”Content-Type” content=”text/html;
charset=GB2312″>  
    </head>  
    <body>  
    I love php。  
    </body>  
    </html>  
   
“;                                                                         
        $mail->AltBody =”text/html”;   
        if(!$mail->Send())   
        {   
            echo “邮件发送有误 <p>”;   
            echo “邮件错误音讯: ” . $mail->ErrorInfo;   
            exit;   
        }   
        else {   
            echo “$user_name 邮件发送成功!<br />”;   
        }   
    }   
    // 参数表明(发送到, 邮件宗旨, 邮件内容, 附加音讯, 用户名)   
有关phpmailer的详尽介绍及选用格局,phpmailer中文乱码难题的缓和措施。    smtp_mail(“yourmail@yourdomain.com”, “接待使用phpmailer!”, “NULL”,
“yourdomain.com”, “username”);   
    ?>

信任有广大相爱的人是设置成”GBK”或“GB2312”的,我初叶也是,后来询问到Mail是国际化的,假使想在像Gmail等那样的国际化邮箱准确突显汉语,请将编码设置为“UTF-8”;

<html>
<body>
<h3>phpmailer Unit Test</h3>
请您输入<font color=”#FF6666″>收信</font>的邮箱地址:
<form name=”phpmailer” action=”send.php” method=”post”>
<input type=”hidden” name=”submitted” value=”1″/>
邮箱地址: <input type=”text” size=”50″ name=”address” />
<br/>
<input type=”submit” value=”发送”/>
</form>
</body>
</html>

//如若要轉載本文請阐明出處,免的出現版權紛爭,小编不喜歡看到那種轉載了自家的作品卻不注脚出處的人
Seven{See7di#Gmail.com}

注意:

3,:设置标题编码;

send.php

<?php
//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set(‘America/Toronto’);
require_once(‘../class.phpmailer.php’);
//include(“class.smtp.php”);
//可选,会活动从class.phpmailer.php加载
$mail=new
PHPMailer();
$body=file_get_contents(‘contents.html’);
$body=Strtr($body,Array(“\\”=>””));//$body=
eregi_replace(“[\]”,”,$body);
$mail->IsSMTP();  
                         // 告诉程式要采用SMTP
$mail->SMTPDebug  =
2;                        // 开启 SMTP debug 新闻 (测量试验时选拔)// 1 =
错误和新闻// 2 = 唯有音信
$mail->SMTPAuth   =
true;                    // 开启 SMTP 验证
$mail->SMTPSecure =
“ssl”;                    // sets the prefix to the servier
$mail->Host       =
“smtp.gmail.com”;        // sets GMAIL as the SMTP server
$mail->Port       =
465;                    // set the SMTP port for the GMAIL
server
$mail->Username   =
“see7di@gmail.com”;        // GMAIL用户名
$mail->Password   =
“******”;                // GMAIL密码
$mail->CharSet
= “utf-8”;        //参预该行代码可避防御信件内容乱码

1. 邮件的字符集设置, $mail->CharSet = “GB2312”; //
这里钦赐字符集!在此处本人只钦定为GB2312因为如此Outlook能健康显示邮件核心,笔者尝试过设为utf-8但在Outlook下显得乱码。
2. 万一是发送html格式的邮件,那么记得也钦定
3. 要是你想用它来群发邮件的话,记得修改包含文件函数,如:
require(“phpmailer/class.phpmailer.php”);
改为
require_once(“phpmailer/class.phpmailer.php”);
不然的话会产生类的重定义。

这里或许有人会问,都安装了邮件的编码了,还设置标题编码做什么。。。
若是你测量试验过种种信箱,你会意识标题中文是乱码的,没有错,就算你设置了
$mail->Charset=”UTF-8″;
既然学习php应该多看看php手册或留神php.net
,标题乱码的消除办法小编是在php官方网址找到答案的 hhtp://.www.php.net/mail。
$mail->Subject =”信件标题”; 改为 $mail->Subject = “=?utf-8?B?” .
base64_encode(“信件标题”) . “?=”;
“设计此种编码是为了使二进制数据能够通过非纯 8-bit
的传输层传输,举例电子邮件的着重点。”(来自php手册 base64_encode() )

 代码如下

$mail->SetFrom(‘see7di@gmail.com’,’张三’);  
     //发信人邮件地址及用户名
//$mail->AddReplyTo(“see7di@gmail.com”,”张三”);  
 //回复地址及用户名

民用认为要选择phpmailer,首先,供给有四个邮件服务器,PHP的
mail函数未有一点名,应该是选拔的PHP设置的SMTP。

你或然感兴趣的稿子:

  • PHP的邮件群发系统phplist配置格局详细计算
  • PHP借助phpmailer发送邮件
  • thinkphp使用phpmailer发送邮件的方法
  • 选用PHPMailer实现邮件发送代码分享
  • phpmailer在服务器上不可能寻常发送邮件的化解办法
  • PHPMailer发送HTML内容、带附件的邮件实例
  • PHP使用PHPMailer发送邮件的粗略利用方法
  • ThinkPHP利用PHPMailer达成邮件发送落成代码
  • phpmailer发送gmail邮件实例详解
  • PHPMailer邮件发送的贯彻代码
  • phplist及phpmailer(组合使用)通过gmail发送邮件的布局情势

<?php
require(“class.phpmailer.php”);
$mail = new PHPMailer();
$mail->CharSet = “gb2312”; /
$mail->Encoding = “base64”;
$address = $_POST[‘address’];
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = “smtp.126.com”; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = “”; // SMTP username
$mail->PassWord =
“******”; // SMTP password

$subject=’這是郵件標題’;
$mail->Subject    =
“=?UTF-8?B?”.base64_encode($subject).”?=
“;//使用base64编码是为着幸免信件标题乱码

而在此间要求现实钦命,同期必要钦命邮件服务器的集团管理者和密码。

$mail->From = “”;
$mail->FromName = “rokaye”;
$mail->AddAddress(“$address”, “”);
//$mail->AddAddress(“”); // name is optional
//$mail->AddReplyTo(“”, “”);

$mail->MsgHTML($body);

PHPMailer 也是叁个成效强大的邮件类

//$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment(“/var/tmp/file.tar.gz”); // add attachments
//$mail->AddAttachment(“/tmp/image.jpg”, “new.jpg”); // optional
name
//$mail->IsHTML(true); // set email format to HTML

$mail->AddAddress(“see7di@msn.com”,”李四”);  
     //接收者邮件地址及用户名
//附件
//$mail->AddAttachment(“images/phpmailer.gif”);     
// attachment
//$mail->AddAttachment(“images/phpmailer_mini.gif”);
// attachment

**PHPMailer的基本点功效特色:

$mail->Subject = “PHPMailer测验邮件”;
$mail->Body = “Hello,那是rokaye的测量检验邮件”;
$mail->AltBody = “This is the body in plain text for non-HTML mail
clients”;

if(!$mail->Send())
{
    echo “Mailer
Error: “.$mail->ErrorInfo;
}else{
    echo “Message
sent!”;
}
?>

**帮忙邮件 s/mime加密的数字签字
补助邮件三个 TOs, CCs, BCCs and REPLY-TOs
能够干活在另外服务器平台,所以不要忧郁WIN平台不或许发送邮件的主题材料的
支撑文本/HTML格式邮件
能够停放image图像
对于邮件客户端不协理HTML阅读的展开销撑
作用庞大的发送邮件调节和测量检验功能debug
自定义邮件header
冗余SMTP服务器扶助
支持8bit, base64, binary, and quoted-printable 编码
文字自动换行
援救多附属类小部件发送功效
支持SMTP服务器验证功效
在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平台测量试验成功
提供的下载文件中,满含内容详细的验证文书档案及示范表达,所以并非操心难于上手的难点!
PHPMailer 相当小巧、简单、方便、迅速
如上资料由Jiucool 翻译自phpmailer 官方网站,转发请注脚!

if(!$mail->Send())
{
echo “Message could not be sent. <p>”;
echo “Mailer Error: ” . $mail->ErrorInfo;
exit;
}

OK!

PHPMailer的施用(这里以利用gmail smtp发送邮件为例,当然也支撑sendmail
pop 等别的艺术):
首先到 下载最新版本的次序包
下载完结后,找到class.phpmailer.php
、class.smtp.php多少个类放到自个儿的目录下!
下一场新建三个php文件这里命名为:phpmail_jiucool.php
phpmail_jiucool.php内容如下:
本身间接将邮件发送模块写成三个函数postmail_jiucool_com(),大家使用的时候平素调用该函数就能够,函数内容为:

echo “Message has been sent”;
?>

复制代码 代码如下:

消除格局一

function postmail_jiucool_com($to,$subject = “”,$body = “”){
//Author:Jiucool WebSite: //www.jb51.net
//$to 代表收件人地址 $subject 表示邮件标题 $body表示邮件正文
//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set(“Asia/Shanghai”);//设按期区东八区
4858.com,require_once(‘class.phpmailer.php’);
include(“class.smtp.php”);
$mail = new PHPMailer(); //new多少个PHPMailer对象出来
$body = eregi_replace(“[\]”,”,$body); //对邮件内容实行供给的过滤
$mail->CharSet
=”UTF-8″;//设定邮件编码,暗许ISO-8859-1,若是发中文此项必须设置,不然乱码
$mail->IsSMTP(); // 设定使用SMTP服务
$mail->SMTPDebug = 1; // 启用SMTP调节和测试效用
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // 启用 SMTP 验证功效
$mail->SMTPSecure = “ssl”; // 安全磋商
$mail->Host = “smtp.googlemail.com”; // SMTP 服务器
$mail->Port = 465; // SMTP服务器的端口号
$mail->Username = “SMTP服务器用户名”; // SMTP服务器用户名
$mail->Password = “SMTP服务器密码”; // SMTP服务器密码
$mail->SetFrom(‘发件人地址,如admin#jiucool.com #调换@’,
‘发件人名称’);
$mail->AddReplyTo(“邮件回复地址,如admin#jiucool.com
#换来@”,”邮件回复人的称号”);
$mail->Subject = $subject;
$mail->AltBody = “To view the message, please use an HTML compatible
email viewer! – From www.jiucool.com”; // optional, comment out and
test
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, “收件人名称”);
//$mail->AddAttachment(“images/phpmailer.gif”); // attachment
//$mail->AddAttachment(“images/phpmailer_mini.gif”); // attachment
if(!$mail->Send()) {
echo “Mailer Error: ” . $mail->ErrorInfo;
} else {
echo “Message sent!恭喜,邮件发送成功!”;
}
}

$mail = new PHPMailer();
$mail->CharSet = “GB2312”; // 设置字符集编码 utf-8
$mail->Encoding = “base64”;//设置文本编码格局

你大概感兴趣的稿子:

  • PHPMailer使用教程(PHPMailer发送邮件实例分析)
  • PHPMailer安装方法及简便实例
  • PHPMailer邮件发送的达成代码
  • 163的邮件用phpmailer发送(实例详解)
  • PHPMailer发送HTML内容、带附属类小部件的邮件实例
  • PHP使用PHPMailer发送邮件的归纳利用办法
  • phpmailer发送gmail邮件实例详解
  • PHPMailer 国语使用表明小结
  • Linux服务器下PHPMailer发送邮件退步的标题一蹴而就

若果标题错误可

$mail->Subject = “=?UTF-8?B?” . base64_encode(“小编的邮件”) . “?=”;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有