一、安装PHPMailer
进入项目目录下,执行:composer require phpmailer/phpmailer
二、使用
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
header("Content-Security-Policy: script-src 'self' 'unsafe-inline' *.baidustatic.com; style-src 'self' 'unsafe-inline';");
header('Content-Type: application/json');
// 邮件配置
$mailConfig = [
'smtp_host' => 'smtp.163.com',
'smtp_port' => 465, // 或587
'smtp_user' => 'xxx@163.com',
'smtp_pass' => 'xxx',
'from' => 'xxx@163.com',
'to' => 'xxx@163.com'
];
// 发送邮件
try {
$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = $mailConfig['smtp_host'];
$mail->SMTPAuth = true;
$mail->Username = $mailConfig['smtp_user'];
$mail->Password = $mailConfig['smtp_pass'];
$mail->SMTPSecure = 'ssl'; // 改为 ssl
$mail->Port = $mailConfig['smtp_port']; // 465
$mail->setFrom($mailConfig['from'], 'xxx');
$mail->addAddress($mailConfig['to']);
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
$mail->ContentType = 'text/html; charset=utf-8';
$mail->isHTML(true);
$mail->Subject = 'xxx';
$mail->Body = "
<h3>xxx</h3>
<p>xxx:xxx</p>
<p>xxx:{$username}</p>
<p>xxx:{$userPhone}</p>
<p>xxx:" . date('Y-m-d H:i:s') . "</p>
";
$mail->send();
} catch (Exception $e) {
throw new Exception("邮件发送失败: " . $e->getMessage());
}
exit;