简介
phpMailer 是一个非常强大的php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
开启STMP服务
QQ邮箱开启STMP服务
所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。
第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。
进去网页邮箱,点击设置->账户->开启IMAP服务
一顿操作之后,就能看到授权码
SMTP 服务器认证密码,需要妥善保管(PS:密码直接没有空格)
网易邮箱开启STMP服务
在这里就不多加演示了,跟QQ开启方式差不多,不懂问度娘。
使用composer安装phpmailer
composer require phpmailer/phpmailer
使用PHPmailer
在应用公共文件common.php写个发送邮件的函数(腾讯邮箱的为例),需要注意的是实例化PHPMailer因为如果路径不对会报错(***类名不存在)
代码编写
<?php
/**
* Created by PhpStorm.
* User: 加油鸭
* Date: 2020/06/07
* Time: 15:43
*/
/**
* Notes:发送邮件
* @param string $tomail 接收邮件者邮箱
* @param string $name 接收邮件者名称
* @param string $subject 邮件主题
* @param string $body 邮件内容
* @param string $attachment 附件列表
* @return boolean
* @throws phpmailerException
*/
function send_mail($tomail, $name, $subject = '', $body = '', $attachment = null) {
$mail = new PHPMailer\PHPMailer\PHPMailer(); //实例化PHPMailer对象
$mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->IsSMTP(); // 设定使用SMTP服务
$mail->SMTPDebug = 0; // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息
$mail->SMTPAuth = true; // 启用 SMTP 验证功能
$mail->SMTPSecure = 'ssl'; // 使用安全协议
$mail->Host = "smtp.qq.com"; // SMTP 服务器
$mail->Port = 465; // SMTP服务器的端口号
$mail->Username = "******@qq.com"; // SMTP服务器用户名
$mail->Password = "******"; // SMTP服务器密码,这里是你开启SMTP服务时生成密码
$mail->SetFrom('******@qq.com', $name);
$replyEmail = ''; //留空则为发件人EMAIL
$replyName = ''; //回复名称(留空则为发件人名称)
// $mail->addAttachment('../xy.zip'); // 添加附件
// $mail->addAttachment('../thumb-1.jpg', 'new.jpg'); // 发送附件并且重命名
$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
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);
}
}
运行之后,你就会看到你的邮件提示信息啦。
小编的介绍就到这里了,希望对此刻的你有所帮助,溜了溜了~