'/path/file', 'name' => '文件名']] * @return bool */ public static function send($to, $subject, $body, $attachments = []) { $mail = new PHPMailer(true); try { // 服务器配置 $mail->isSMTP(); $mail->Host = config('imap.smtp_xyh.host'); // SMTP服务器 $mail->SMTPAuth = true; $mail->Username = config('imap.smtp_xyh.username'); // 邮箱账号 $mail->Password = config('imap.smtp_xyh.password'); // 邮箱密码/授权码 $mail->SMTPSecure = config('imap.smtp_xyh.encryption'); // 加密方式 tls/ssl $mail->Port = config('imap.smtp_xyh.port'); // 端口 // 发件人 $mail->setFrom(config('imap.smtp_xyh.from_address'), config('imap.smtp_xyh.from_name')); // 收件人(支持单个或多个) if (is_string($to)) { $mail->addAddress($to); } elseif (is_array($to)) { foreach ($to as $email) { $mail->addAddress($email); } } // 附件 foreach ($attachments as $file) { $mail->addAttachment($file['path'], $file['name'] ?? ''); } // 内容 $mail->isHTML(true); $mail->CharSet = 'UTF-8'; $mail->Encoding = 'base64'; $mail->Subject = mb_encode_mimeheader($subject, 'UTF-8', 'B', "\r\n"); $mail->Body = $body; // $mail->AltBody = strip_tags($body); // 纯文本备用 // $mail->AltBody = $altbody; $mail->send(); return true; } catch (Exception $e) { Log::error("邮件发送失败: " . $e->getMessage()); return false; } } }