是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及可以添加附件发送,并不像PHP本身mail()函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能。
项目地址
:
PHP扩展支持
需要PHP的扩展支持,而登录QQ邮箱SMTP服务器则必须通过SSL加密,故PHP还得包含的支持。
↑使用()函数查看和openssl扩展信息(wampserver默认启用了该扩展)。
PHPMailer核心文件
↑在本文中只需要class.phpmailer.php和PHPMailer/class.smtp.php。
QQ邮箱设置
所有的主流邮箱都支持SMTP协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。
第三方服务在提供了账号和密码之后就可以登录SMTP服务器,通过它来控制邮件的中转方式。
开启SMTP服务
↑选择IMAP/SMTP服务,点击开启服务。
验证密保
↑发送短信“配置邮件客户端”至1069-0700-69。
获取授权码
↑SMTP服务器认证密码,需要妥善保管(PS:密码直接没有空格)。
PHP发送邮件
基本代码
下面的代码演示了PHPMailer的使用方法,注意PHPMailer实例的配置过程。
//引入PHPMailer的核心文件
require_once(PHPMailer/class.phpmailer.php);
require_once(PHPMailer/class.smtp.php);
//实例化PHPMailer核心类
$mail=newPHPMailer();
//是否启用smtp的debug进行调试开发环境建议开启生产环境注释掉即可默认关闭debug调试模式
$mail-SMTPDebug=1;
//使用smtp鉴权方式发送邮件
$mail-isSMTP();
//smtp需要鉴权这个必须是true
$mail-SMTPAuth=true;
//链接qq域名邮箱的服务器地址
$mail-Host=smtp.qq.com
//设置使用ssl加密方式登录鉴权
$mail-SMTPSecure=ssl
//设置ssl连接smtp服务器的远程服务器端口号
$mail-Port=465;
//设置发送的邮件的编码
$mail-CharSet=UTF-8
//设置发件人昵称显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail-FromName=发件人昵称
//smtp登录的账号QQ邮箱即可
$mail-Username=12345678@qq.com
//smtp登录的密码使用生成的授权码
$mail-Password=**********
//设置发件人邮箱地址同登录账号
$mail-From=12345678@qq.com
//邮件正文是否为html编码注意此处是一个方法
$mail-isHTML(true);
//设置收件人邮箱地址
$mail-addAddress(87654321@qq.com
//添加多个收件人则多次调用方法即可
$mail-addAddress(87654321@163.com
//添加该邮件的主题
$mail-Subject=邮件主题
//添加邮件正文
$mail-Body=h1HelloWorld/h1
//为该邮件添加附件
$mail-addAttachment(./example.pdf
//发送邮件返回状态
$status=$mail-send();
封装方法
如果要直接使用PHPMailer发送邮件,则需要进行繁琐的配置,这样做多少会降低效率。
为了简化调用过程,我在其基础上进行了二次封装,只需要配置账号、密码和昵称,就可以定制你自己的QQMailer类了。
?php
require_oncePHPMailer/class.phpmailer.phprequire_oncePHPMailer/class.smtp.php
classQQMailer
{
publicstatic$HOST=smtp.qq.com//QQ邮箱的服务器地址
publicstatic$PORT=465;//smtp服务器的远程服务器端口号
publicstatic$SMTP=ssl//使用ssl加密方式登录
publicstatic$CHARSET=UTF-8//设置发送的邮件的编码
privatestatic$USERNAME=****@qq.com//授权登录的账号
privatestatic$PASSWORD=****************//授权登录的密码
privatestatic$NICKNAME=woider//发件人的昵称
/**
*QQMailerconstructor.
*@parambool$debug[调试模式]*/
publicfunction__construct($debug=false)
{
$this-mailer=newPHPMailer();
$this-mailer-SMTPDebug=$debug?1:0;
$this-mailer-isSMTP();//使用SMTP方式发送邮件}
/**
*@returnPHPMailer
*/
publicfunctiongetMailer()
{return$this-mailer;
}privatefunctionloadConfig()
{/*ServerSettings*/
$this-mailer-SMTPAuth=true;//开启SMTP认证
$this-mailer-Host=self::$HOST;//SMTP服务器地址
$this-mailer-Port=self::$PORT;//远程服务器端口号
$this-mailer-SMTPSecure=self::$SMTP;//登录认证方式
/*AccountSettings*/
$this-mailer-Username=self::$USERNAME;//SMTP登录账号
$this-mailer-Password=self::$PASSWORD;//SMTP登录密码
$this-mailer-From=self::$USERNAME;//发件人邮箱地址
$this-mailer-FromName=self::$NICKNAME;//发件人昵称(任意内容)
/*ContentSetting*/
$this-mailer-isHTML(true);//邮件正文是否为HTML
$this-mailer-CharSet=self::$CHARSET;//发送的邮件的编码}/**
*Addattachment
*@param$path[附件路径]*/
publicfunctionaddFile($path)
{$this-mailer-addAttachment($path);
}/**
*SendEmail
*@param$email[收件人]
*@param$title[主题]
*@param$content[正文]
*@returnbool[发送状态]*/
publicfunctionsend($email,$title,$content)
{$this-loadConfig();$this-mailer-addAddress($email);//收件人邮箱
$this-mailer-Subject=$title;//邮件主题
$this-mailer-Body=$content;//邮件信息
return(bool)$this-mailer-send();//发送邮件}
}
QQMailer.php
require_onceQQMailer.php//实例化
QQMailer$mailer=newQQMailer(true);//添加附件
$mailer-addFile(20130VL.jpg//邮件标题
$title=愿得一人心,白首不相离。//邮件内容
$content=EOFpalign=center皑如山上雪,皎若云间月。br闻君有两意,故来相决绝。br今日斗酒会,明旦沟水头。br躞蹀御沟上,沟水东西流。br凄凄复凄凄,嫁娶不须啼。br愿得一人心,白首不相离。br竹竿何袅袅,鱼尾何簁簁!br男儿重意气,何用钱刀为!/pEOF;
//发送QQ邮件
$mailer-send(****@qq.com,$title,$content);
测试结果
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
php实现调用百度的ocr文字识别接口