不经过悉心栽培,花儿开不出鲜艳的花朵;不经过时间的历练,幼苗长不成参天大树。

Thinkphp5结合PHPMailer发送邮件(php发送邮件)

php 建伟 4825℃ 0评论

网上发送邮件的例子有很多,今天这篇文章主要是采用了tp5和结合PHPMailer实现的,也算是比较新的了。

php命名空间是在php5.3中引入的,也得到了大家的认可,有不太懂的可以自行去学习。

thinkphp呢,不用多说了吧。本文主要是用了目前最新的tp5。

PHPMailer是一个用于发送电子邮件的php函数包,网上也有许多下载,不做太多解释。

1.第一步 准备文件

我们需要用到其中俩个类文件class.phpmailer.php和class.smtp.php

QQ截图20160828132846

 

 

 

 

 

 

 

因为TP5的命名规范,更加简洁,所以这里我简单得对俩个文件改了一下名称Mail.php,Smtp.php

QQ截图20160828133159

 

 

 

 

 

 

 

 

 

如图所示。把他放到了我项目中的扩展里面,大家可自行根据自己的项目位置来放。

2.第二步 增加命名空间

因为默认这俩个文件是没有命名空间的  所以得我们自己手动加一下。我的命名是namespace org;

QQ截图20160828133550

 

 

 

3.第三步 引入使用

这个时候我们就基本可以直接使用了,下面代码大家自己根据情况而写。

首先我们在配置文件中加入配置项 config.php

1
2
3
4
5
6
7
8
9
// 配置邮件发送服务器
'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称
'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证
'MAIL_USERNAME' =>'xxxxxx@163.com',//你的邮箱名
'MAIL_FROM' =>'xxxxxx@163.com',//发件人地址
'MAIL_FROMNAME'=>'姓名',//发件人姓名
'MAIL_PASSWORD' =>'xxxx',//密码  注意这里是邮箱授权码
'MAIL_CHARSET' =>'utf-8',//设置邮件编码
'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件

然后在公共类文件中加入方法 common.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * 邮件发送函数
 */
function sendMail($to, $title, $content,$mail) {
    $mail->IsSMTP(); // 启用SMTP
    $mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
    $mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
    $mail->Username = C('MAIL_USERNAME'); //你的邮箱名
    $mail->Password = C('MAIL_PASSWORD') ; //邮箱密码
    $mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
    $mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
    $mail->AddAddress($to,"尊敬的客户");
    $mail->WordWrap = 50; //设置每行字符长度
    $mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
    $mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
    $mail->Subject =$title; //邮件主题
    $mail->Body = $content; //邮件内容
    $mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
    return($mail->Send());
}

最后呢大家在自己需要调用的控制器中调用即可,可别忘了引入空间!

1
2
$m = new Mail();
sendMail('xxxxxx@qq.com','标题','内容',$m)

常见的错误原因

1.这里是需要你邮箱开启STMP服务的

登录你的邮箱手动开启STMP服务,这个服务默认是关闭的,一定要去邮箱->设置 里去手动开启,开启时要求你设置一个独立密码,这个密码就是配置文件中的密码。

2.有时候可能会发送成功,但是对方没有接受到邮件

这里有可能是在系统默认为了垃圾邮件,需要自己到垃圾箱中找一下,QQ邮箱经常的事。

 

最后说的是

这里我也只是跟大家说了一下我的怎么应用,你只需要理解即可,而实际的应用呢,是需要大家自己变更的。

转载请注明:Li Jianwei's Blog » Thinkphp5结合PHPMailer发送邮件(php发送邮件)

喜欢 (2)or分享 (0)
web技术交流群
22765697