发送邮件
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
namespace app\service;
|
||||
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
use PHPMailer\PHPMailer\Exception;
|
||||
use support\Log;
|
||||
|
||||
class MailService
|
||||
{
|
||||
protected $mailer;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->mailer = new PHPMailer(true);
|
||||
$this->configure();
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
// SMTP 配置
|
||||
$this->mailer->isSMTP();
|
||||
$this->mailer->Host = 'smtp.qq.com';
|
||||
$this->mailer->SMTPAuth = true;
|
||||
$this->mailer->Username = '1696136552@qq.com'; // 替换为你的 Gmail
|
||||
$this->mailer->Password = 'jhqkgjwzqqzgdcfd'; // 替换为应用专用密码
|
||||
// $this->mailer->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // 使用 TLS
|
||||
$this->mailer->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL 加密
|
||||
// $this->mailer->Port = 587;
|
||||
$this->mailer->Port = 465;
|
||||
$this->mailer->CharSet = 'UTF-8';
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送验证码邮件
|
||||
* @param string $toEmail 收件邮箱
|
||||
* @param string $code 验证码
|
||||
* @return bool
|
||||
*/
|
||||
public function sendVerificationCode(string $toEmail, string $code): bool
|
||||
{
|
||||
try {
|
||||
$this->mailer->setFrom('1696136552@qq.com', 'XinYouHe Code'); // 发件人
|
||||
$this->mailer->addAddress($toEmail);
|
||||
|
||||
// 邮件内容
|
||||
$this->mailer->isHTML(true);
|
||||
$this->mailer->Subject = '您的验证码';
|
||||
$this->mailer->Body = "您的CRM验证码是:<strong>{$code}</strong>,5分钟内有效。";
|
||||
|
||||
$this->mailer->send();
|
||||
Log::info("邮件发送成功: {$toEmail}");
|
||||
return true;
|
||||
} catch (Exception $e) {
|
||||
Log::error("邮件发送失败: " . $this->mailer->ErrorInfo);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user