tp5邮件发送
主要实现代码
<?php
namespace tool\emai;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
class Email
{
public static function getEmail()
{
$mail = new PHPMailer(true);
try {
//服务器配置
$mail->CharSet ="UTF-8"; //设定邮件编码
$mail->SMTPDebug = 0; // 调试模式输出
$mail->isSMTP(); // 使用SMTP
$mail->Host = 'smtp.qq.com'; // SMTP服务器
$mail->SMTPAuth = true; // 允许 SMTP 认证
$mail->Username = '993571512@qq.com'; // SMTP 用户名 即邮箱的用户名
$mail->Password = 'ckduglxywomageej'; // SMTP 密码 部分邮箱是授权码(例如163邮箱)
$mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议
$mail->Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持
$mail->setFrom('993571512@qq.com', '安静'); //发件人
$mail->addAddress('993571512@qq.com', '安静'); // 收件人
$mail->addReplyTo('993571512@qq.com', '安静'); //回复的时候回复给哪个邮箱 建议和发件人一致
$mail->isHTML(true); // 是否以HTML文档格式发送 发送后客户端可直接显示对应HTML内容
$mail->Subject = '给你发一个邮件';
$mail->Body = '<h1>这才我号</h1>' . date('Y-m-d H:i:s');
$mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';
$mail->send();
echo '邮件发送成功';
} catch (Exception $e) {
echo '邮件发送失败: ', $mail->ErrorInfo;
}
}
}下载类库
composer require phpmailer/phpmailer
或者用这个
<?php
namespace app\index\controller;
use think\Controller;
use phpmailer\phpmailer;
class Index extends Controller
{
public function index()
{
$data = [
'user_email' => '1933987037@qq.com', //接收人邮箱
'content' => '您正在测试邮箱验证,如非本人操作,请勿理会。'
];
$this->sendEmail($data);
}
public function sendEmail($data = []) {
$mail = new phpmailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
$mail->Host = 'smtp.qq.com'; //SMTP服务器 以qq邮箱为例子
$mail->Port = 465; //邮件发送端口
$mail->SMTPAuth = true; //启用SMTP认证
$mail->SMTPSecure = "ssl"; // 设置安全验证方式为ssl
$mail->CharSet = "UTF-8"; //字符集
$mail->Encoding = "base64"; //编码方式
$mail->Username = '1933987037@qq.com'; //发件人邮箱
$mail->Password = '********'; //发件人密码 ==>重点:是授权码,不是邮箱密码
$mail->Subject = '来自小咸鱼的邮箱验证'; //邮件标题
$mail->From = '1933987037@qq.com'; //发件人邮箱
$mail->FromName = '小咸鱼'; //发件人姓名
if($data && is_array($data)){
$mail->AddAddress($data['user_email']); //添加收件人
$mail->IsHTML(true); //支持html格式内容
$mail->Body = $data['content']; //邮件主体内容
//发送成功就删除
if ($mail->Send()) {
//echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息,用以邮件发送不成功问题排查
return 1;
}else{
return -1;
}
}
}
}最后在根目录下的extend文件夹中放入第三方类库也就是phpmailer这个文件夹(里面有两个文件,分别是phpmailer.php,class.smtp.php)