Ubuntu下Laravel出现Class 'DOMDocument' not found错误及邮件发送问题
解决Ubuntu环境Laravel项目的两个问题:DOMDocument缺失与Gmail邮件发送失败
一、修复Class 'DOMDocument' not found错误
DOMDocument是PHP的XML扩展组件,Ubuntu下PHP 7.4需安装对应扩展包:
- 执行安装命令:
sudo apt-get update sudo apt-get install php7.4-xml - 安装完成后重启Web服务及PHP-FPM(按需选择):
# Apache环境 sudo systemctl restart apache2 # Nginx+PHP-FPM环境 sudo systemctl restart nginx sudo systemctl restart php7.4-fpm - 验证扩展:执行
php -m | grep dom,输出dom则说明安装成功。
二、解决Gmail SMTP邮件发送失败问题
按以下步骤调整配置及权限:
- 更新.env配置项
Laravel新版本中MAIL_DRIVER已被MAIL_MAILER替代,修改配置:MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME=你的Gmail邮箱地址 MAIL_PASSWORD=应用专用密码 MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=你的Gmail邮箱地址 MAIL_FROM_NAME="${APP_NAME}" - 生成Gmail应用专用密码
若账号开启两步验证,不能使用常规登录密码,需生成应用专用密码:- 登录Google账号进入「安全」设置
- 找到「应用专用密码」,选择「邮件」及「其他」设备类型
- 生成后复制密码,替换.env中的
MAIL_PASSWORD
- 清除Laravel配置缓存
修改配置后执行命令确保生效:php artisan config:clear php artisan cache:clear - 测试邮件发送
通过Artisan命令快速验证:php artisan tinker Mail::raw('测试邮件内容', function($message) { $message->to('接收邮箱地址')->subject('测试邮件'); });
内容的提问来源于stack exchange,提问作者user20656573
相关产品推荐
相关产品推荐

