setUsername(config('mail.mailers.smtp.username')); $transport->setPassword(config('mail.mailers.smtp.password')); // 设置加密方式 if (config('mail.mailers.smtp.encryption')) { $transport->setEncryption(config('mail.mailers.smtp.encryption')); } // 创建邮件器 $mailer = new Swift_Mailer($transport); // 创建邮件消息 $message = new Swift_Message($subject); $message->setFrom($from ?: config('mail.from.address')); $message->setTo($to); // 自动识别 body 是否为 HTML 内容 if (self::isHtmlContent($body)) { // HTML 内容 $message->setBody($body, 'text/html'); // 可选:同时添加纯文本版本作为备选 $message->addPart(strip_tags($body), 'text/plain'); } else { // 纯文本内容 $message->setBody($body); } // 发送邮件 return $mailer->send($message); } /** * 判断内容是否为 HTML * * @param string $content * @return bool */ private static function isHtmlContent($content) { // 方法1:检查是否包含 HTML 标签 if (strip_tags($content) != $content) { return true; } // 方法2:检查是否以 ]*>/i', '/]*>/i', '/]*>/i', '/]*>/i', '//i', '/]*>/i', '/]*>/i', '/]*>/i', '/]*>/i', '/]*>/i', '/]*>/i' ]; foreach ($htmlPatterns as $pattern) { if (preg_match($pattern, $content)) { return true; } } return false; } }