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)