万伯智业千人计划 HRCOE训战营 11大HRM专题 12大高阶HRM专题 7大通用管理专题 QQ、微信、工单售后保障

HR线下专题学习,就选万伯智业
年度钜惠,售后有保障,囤课就现在!一样的高品质,不一样的超低价

定位专业技术支持,聚焦薪酬、绩效、组织发展(TD/OD/LD)、胜任力建模、人才测评、领导力开发、人才评价中心等细分领域,
输出深度专业能力和实战解决方案

距结束还剩:0000小时0000
当前位置:首页 » WordPress主题开发 » WordPress使用教程 » 正文

PHP邮件mail()函数解析和SMTP使用方法及乱码问题

email.class.php
登录后免费下载

前段时间由于一个需求需要使用评论自动发送邮件到网站官方邮箱的功能,期间碰到不少问题特别是乱码问题,经过一番纠结后终于完美解决了。

一、使用PHP内置的mail 函数

语法: mail(to,subject,message,headers,parameters)

  • to 规定邮件的接收者
  • subject 规定邮件的主题。该参数不能包含任何换行字符
  • message 规定要发送的消息
  • headers 规定额外的报头,比如 From, Cc 以及 Bcc
  • parameters 规定 sendmail 程序的额外参数。

碰到的主要问题是乱码问题,刚开始是某些客户端接收邮件时好(比如QQ邮箱,估计带自动那个识别编码)的有些不foxmail、ipad显示乱码,解决方式正确的设置这个mail的headers就行了,下面是我使用的完美的无乱码的例子。

<?php
// 当发送 HTML 电子邮件时,请始终设置 content-type
$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html; charset=utf-8";

mail($to,$subject,$message,$headers);
?>

优点:使用方便就一个简单的函数
缺点:需要php.ini支持该函数,如果某些服务器不支持而又不能改环境那就不行了而且总是不稳定,发的有时能收到有时不能。

二、使用SMTP发送邮件

这里使用一个已经封装好的smtp类email.class.php类被我修改过,增加了编码设置,没加编码设置的话会在某些不能自动识别编码的客户端上出现乱码。

关于这个类的使用:

<?php
require_once ('email.class.php');

$smtpserver = "smtp.exmail.qq.com";
$smtpserverport =25;
$smtpusermail = "lyushine@qq.com";
$smtpuser = "lyushine@qq.com";
$smtppass = "xxxxxx";
$mailtype = "HTML";

$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);
$smtp->debug = false;
$smtp->sendmail($to, $smtpusermail, $subject,$message, $mailtype,"utf-8");
?>

看以上代码大概了解了吧。先引入email.class.php然后实例化smtp类,配置debug模式,发送邮件,需要注意的是设置最后的编码。

刚开始我网上找的没有对编码进行处理导致乱码。

关于 headers 中 subject 的乱码:
不要把任何除了 iso-8859-1 编码之外的文字直接放进 subject,正确的方式是让 subject 里头的文字符合 RFC 2047 的规范,假设你的 subject 处的文字的编码是 GB2312,那么正确的 subject 应该是这样的格式 $headers[‘subject’] = ‘=?GB2312?B?’ . base64_encode(‘标题文字’) . ‘?=’;如果是 UTF-8 的话,把上面开头的 GB2312 替换成 UTF-8 即可。推荐在标题处使用 GB2312 编码,因为 MTA 的分化实在是严重,大部分的 MSP 使用的都是自己开发的 MTA,而相信国内的大部分 MTA 无论如何都是可以支持 GB2312 编码的。

在这里我把对subject的处理在了类里面,而外面只要传参设置编码为utf-8或者GB2312就行了。在email.class.php里是这样处理的,这样有效的解决了乱码问题。

优点:可靠性强,稳定
缺点:代码较多,邮箱的账号密码必须使用明文存于本站中,不安全因素增加,需要在自己的邮箱配置开启smtp服务

下面附上 email.class.php

产品咨询

-=||=-收藏赞 (152)
温馨提示:平台用户上传的有关内容/文章可能包含来源于法律、法规,以及国家机关发布的决议、决定、命令和其他具有立法、行政、司法性质的文件,或这些文件的官方正式译文,或发布的任何教程或指导性文章内容等,这些内容仅供学习和参考,万伯智业不保证内容的正确性,用户在使用时应自行核实其准确性和适用性,并遵守相关法律法规的规定;通过学习或参考发布的教程或指导性文章内容而带来的风险与万伯智业无关。

HR精品专题

款款是精品、沉浸式脱产学习、售后有保障,一次报名、三年免费复训,由万伯智业团队倾力打造

宽带薪酬专题

适用于中大型规模企业等

¥ 2985  3980

薪酬沙盘专题

适用于成长型企业

¥ 2985  3980

战略绩效专题

适用于各类型企业

¥ 2985  3980

绩效经理专题

适用于各类型企业

¥ 2985  3980

劳动法专题

适用于各类型企业

¥ 2985  3980

人才盘点专题

适用于各类型企业

¥ 1485  1980



万伯智业 | 让组织管理更至简-与企业共致远 » PHP邮件mail()函数解析和SMTP使用方法及乱码问题
分享到
1
152
上一篇
下一篇

相关推荐

评论 (0)

email.class.php
登录后免费下载
登录
立即登录

还没有账号? 立即注册

  签 到
请登录后签到
每日签到得5积分,每连续签到7日将额外得20积分

积分排行榜
1.Candy56046 积分
2.luxiaofeng52412 积分
3.vr8ryxw5ejn52pe644221 积分
4.Deborah40728 积分
5.chriswin40059 积分
6.4zzv1e8540029 积分

HR个人专题学习卡

EVIP体验版
2980
《购买须知》11门
《HRM落地实战专题》中
任选其中的(1门)
3年内选中的专题可免费复训
有效期内有效,逾期权益失效
工单+QQ+微信 三重售后保障

购买其他自营专题享8折优惠
购买代理的课程享8.5折优惠
BVIP初阶版
4980
《购买须知》11门
《HRM落地实战专题》中
任选其中的(2门)
3年内选中的专题可免费复训
有效期内有效,逾期权益失效
工单+QQ+微信 三重售后保障

购买其他自营专题享8折优惠
购买代理的课程享8.5折优惠
MVIP中阶版
5980
《购买须知》11门
《HRM落地实战专题》中
任选其中的(3门)
3年内选中的专题可免费复训
有效期内有效,逾期权益失效
工单+QQ+微信 三重售后保障

购买其他自营专题享8折优惠
购买代理的课程享8.5折优惠
SVIP高阶版
11000
《购买须知》11门
《HRM落地实战专题》中
任选其中的(6门)
3年内选中的专题免费复训
有效期内有效,逾期权益失效
工单+QQ+微信 三重售后保障

购买其他自营专题享8折优惠
购买代理的课程享8.5折优惠
DVIP钻石版
16000
《购买须知》11门
《HRM落地实战专题》中
任选其中的(多门)
3年内选中的专题可免费复训
有效期内有效,逾期权益失效
工单+QQ+微信 三重售后保障

购买其他自营专题享8折优惠
购买代理的课程享8.5折优惠

社群

深圳

HR学习交流群

加入
交流群二维码
                       

加客服微信拉你入群

(请务必备注“地区+姓名+职务”)

广州

HR学习交流群

加入
交流群二维码
                       

加客服微信拉你入群

(请务必备注“地区+姓名+职务”)

东莞

HR学习交流群

加入
交流群二维码
                       

加客服微信拉你入群

(请务必备注“地区+姓名+职务”)

个人中心
用户中心复制已复制
会员创作、推广中心
QQ咨询
617680202复制已复制
点击复制或QQ扫一扫
contact-img
推广返现
推广返现复制已复制
成交越多 返现比例越高
内训问卷
内训调查表复制已复制
订制内训解决方案
公开课
线下公开课复制已复制
全国公开课采购分销中心
录播课
万伯智业云学苑复制已复制
个人/企业线上学习平台
contact-img
客服微信
18718478067复制已复制
点击复制或微信扫一扫
contact-img
在线工单