1.准备工作
1.开启服务器端口
2.开启php.ini中的配置
;extension=php_sockets.dll
;extension=php_openssl.dll这两行去掉分号
3.谷歌邮箱
4.服务器要能链接谷歌,有外网
5.谷歌邮箱要开启imap访问,
6.谷歌账号要开启低安全性应用登陆认证。开启地址: https://myaccount.google.com/lesssecureapps
2.邮箱要开启imap访问
在能访问外网的环境中,登录谷歌账号,开启服务
3.邮箱开启低安全性应用登录认证,访问连接开启
4.在tp5拓展extend目录放入PHPMailer拓展https://github.com/zhangyouwu/phpmailer.git
5.控制器方法
<?php
namespace app\api\controller;
use think\Controller;
use think\Db;
use phpmailer\PHPMailer;
class Test extends Controller
{
/**
* 发送邮箱
* @param type $data 邮箱队列数据 包含邮箱地址 内容
*/
function sendMail() {
$mail = new PHPMailer();//实例化
$mail->CharSet='UTF-8';//设置字符集
//var_dump($toarr);exit();
$mail->IsHTML(true);//是否使用HTML格式
//使用smtp鉴权方式发送邮件
$mail->isSMTP();
//smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
/*
// qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址
$mail->Host = 'smtp.qq.com';
//smtp登录的账号 这里填入字符串格式的qq号即可
$mail->Username = "6023xxx02@qq.com";
// 这个就是之前得到的授权码,一共16位
$mail->Password = "hilmigjuhqxibdif";
$mail->setFrom("6023xxx02@qq.com", "zzz");
// $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可
$mail->addAddress("zhangyouwu1018@gmail.com"); */
$mail->Host = 'smtp.gmail.com';
$mail->Username = "zhangyouwu1018@gmail.com";
$mail->Password = "zyw6023xxx02";
$mail->setFrom("zhangyouwu1018@gmail.com", "测试");
$mail->addAddress("6023xxx02@qq.com");
// 该邮件的主题
$mail->Subject = "会议通知";
// 该邮件的正文内容
$mail->Body = "测试,今天下午3点开会";
$mail->SMTPSecure = 'ssl';
// 设置ssl连接smtp服务器的远程服务器端口号
$mail->Port = 465;
// 使用 send() 方法发送邮件
if(!$mail->send()) {
//return "1";
return '发送失败: ' . $mail->ErrorInfo;
} else {
return "0";
//return "发送成功";
}
}
}