简介
phpMailer 是一个非常强大的php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
开启STMP服务
QQ邮箱开启STMP服务
所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。
第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。
进去网页邮箱,点击设置->账户->开启IMAP服务

一顿操作之后,就能看到授权码

SMTP 服务器认证密码,需要妥善保管(PS:密码直接没有空格)。
网易邮箱开启STMP服务
在这里就不多加演示了,跟QQ开启方式差不多,不懂问度娘。
使用composer安装phpmailer
composer require phpmailer/phpmailer
使用PHPmailer
在应用公共文件common.php写个发送邮件的函数(腾讯邮箱的为例),需要注意的是实例化PHPMailer因为如果路径不对会报错(***类名不存在)

代码编写
php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| <?php
function send_mail($tomail, $name, $subject = '', $body = '', $attachment = null) { $mail = new PHPMailer\PHPMailer\PHPMailer(); $mail->CharSet = 'UTF-8'; $mail->IsSMTP(); $mail->SMTPDebug = 0; $mail->SMTPAuth = true; $mail->SMTPSecure = 'ssl'; $mail->Host = "smtp.qq.com"; $mail->Port = 465; $mail->Username = "******@qq.com"; $mail->Password = "******"; $mail->SetFrom('******@qq.com', $name); $replyEmail = ''; $replyName = ''; $mail->AddReplyTo($replyEmail, $replyName); $mail->Subject = $subject; $mail->MsgHTML($body); $mail->AddAddress($tomail, $name); if (is_array($attachment)) { foreach ($attachment as $file) { is_file($file) && $mail->AddAttachment($file); } } return $mail->Send() ? true : $mail->ErrorInfo; }
|
新建Email控制器,调用Common.php
php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php namespace app\index\controller;
use think\Controller;
class Email extends Controller { public function send_email() { $toemail='******1@qq.com'; $name='彼得潘'; $subject='QQ邮件发送测试'; $content='恭喜你,邮件测试成功。'; $dd = send_mail($toemail,$name,$subject,$content); dump($dd); } }
|
