发件的邮箱开通服务获取授权码:
安装 PHPMailer库
composer require phpmailer/phpmailer
引入PHPMailer类库
use PHPMailer\PHPMailer\PHPMailer;
相关代码(仅供参考):
public function sendCode($toMail,$code, $title='')
{
$this->config = app()->dbConfig->get('sms');//获取配置数据,可自行定义
$mail = new PHPMailer();
try {
if (is_object($toMail)) {
$toMail = $toMail->getValue();
}
if (!$toMail) {
app()->log->info(['mail:收件人邮箱不存在']);
return;
}
$title = $this->config['name'];
$mail->isSMTP();
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
$mail->Host = "smtp.qq.com";//邮件推送服务器
$mail->Port = 465; //端口
$mail->SMTPAuth = TRUE; //授权
$mail->Username = '2903412366@qq.com'; //qq邮箱
$mail->Password = '***********'; //授权码
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //启用加密
$mail->setFrom('2903412366@qq.com', $this->config['name']);
$mail->addAddress($toMail); //收件人和昵称
$mail->isHTML(true); //HTML 格式
$mail->Subject = $title;
$mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
//$this->config['tpl']['code']['sms'] => 您正在注册xxx账号,验证码是:{code},6分钟内有效,请及时输入
$mail->Body = str_replace("{code}", $code,$this->config['tpl']['code']['sms']);;
$mail->AltBody = 'Your mailbox does not support this type of mail'; // 如果邮件客户端不支持HTML则显示此内容
$mail->Sender = "2903412366@qq.com";
if (!$mail->send()) {
app()->log->debug(['邮箱发送失败', $mail->ErrorInfo, $this->config]);
return false;
}
return true;
} catch (\Error $exception) {
app()->log->debug(["邮箱发送失败1:{$toMail}", $exception->getMessage()]);
return false;
}
}
断点:
效果: