我想很多人都查过thinkphp是没有邮件接收发送功能的,我们需要这个功能。在thinkphp5中实现发送邮件功能,这个phpmailer是一个不错的选择
这次把我的实现好的经验告诉大家,希望对大家有帮助。
首先是你自己服务器上的邮件端口就是发送邮件的smtp要开启,这个就不做多解释了,网上搜索下很多讲解
下面讲下phpmailer的操作:
首先下载phpmailer压缩包:
如果你有安装Composer可以使用它来下载
命令
[php]composer require phpmailer/phpmailer[/php]
也可以到官方下载:
https://github.com/PHPMailer/PHPMailer
下载好后在thinkphp中扩展extend下创建一个文件夹mailer,这个名字可以自己定义
找到你下载的phpmailer文件夹里面class.phpmailer.php和class.smtp.php这个两个文件复制到你上面创建的问价夹mailer中
然后这两个文件名前面的class.去除,留phpmailer.php和smtp.php这样。
打开phpmailer.php在头部添加引用
[php]
namespace mailer;
use mailer\smtp;
[/php]
打开smtp.php在头部添加引用
[php]namespace mailer;[/php]
然后在你开发需要调用的地方
添加引用比如我在前端控制器index中需要用到
头部添加
[php]use mailer\phpmailer;[/php]
代码如下
[php]
<?php
namespace app\index\controller;
use think\Controller;
use think\View;
use mailer\phpmailer;
class Index extends Init{
public function index(){
return $this->fetch();
}
public function email(){
$toemail = ‘123456@qq.com’; //收件人的邮箱
$mail = new PHPMailer();
$mail->isSMTP();
$mail->CharSet = ‘utf8’; //编码
$mail->Host = ‘smtp.163.com’; //SMTP服务器地址
$mail->SMTPAuth = true; // 是否使用身份验证
$mail->Username = ‘123456@163.com’; //发送人的邮箱
$mail->Password = ‘123456’; //密码
$mail->SMTPSecure = ‘ssl’; //ssl协议
$mail->Port = 465; //邮箱stml端口
$mail->setFrom($mail->Username, ‘Services’); // 设置发件人信息
$mail->addAddress($toemail, ‘Wang’); // 设置收件人信息
$mail->addReplyTo($mail->Username, "Reply"); // 回复人信息
$mail->Subject = "我来测试";
$mail->Body = "不要害怕,我只是测试哦";
if(!$mail->send()){
echo ‘Message could not be sent.’;
echo ‘Mailer Error:’ . $mail->ErrorInfo;
}else{
echo ‘Send Success!’;
}
}
}
[/php]
发表评论