如何在Laravel中使用Outlook发送邮件?
Laravel Outlook 邮件发送.env 配置修正方案
现有配置的错误点
- 加密协议拼写错误:配置中写的
MAIL_ENCRYPTION=tsl属于拼写错误,正确协议名是tls - 变量名适配:Laravel 7及以上版本已弃用
MAIL_DRIVER参数,需替换为MAIL_MAILER - 密码格式:只有当密码包含特殊字符时需要包裹英文双引号,无特殊字符可直接填写
正确配置示例
# Laravel 7+ 版本配置 MAIL_MAILER=smtp MAIL_HOST=smtp-mail.outlook.com MAIL_PORT=587 MAIL_USERNAME=你的完整Outlook邮箱地址(例:xxx@outlook.com) MAIL_PASSWORD=你的Outlook密码/应用专用密码 MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=你的完整Outlook邮箱地址(和MAIL_USERNAME保持一致) MAIL_FROM_NAME=自定义发件人名称 # 如果你使用的是Laravel 6及更早版本,用以下配置即可 # MAIL_DRIVER=smtp # MAIL_HOST=smtp-mail.outlook.com # MAIL_PORT=587 # MAIL_USERNAME=你的完整Outlook邮箱地址 # MAIL_PASSWORD=你的Outlook密码/应用专用密码 # MAIL_ENCRYPTION=tls # MAIL_FROM_ADDRESS=你的完整Outlook邮箱地址 # MAIL_FROM_NAME=自定义发件人名称
必要验证步骤
- 若你已开启Outlook账号两步验证,不可直接填写账号登录密码,需前往微软账号安全中心生成应用专用密码,填入MAIL_PASSWORD字段
- 配置修改完成后,执行
php artisan config:clear清除Laravel配置缓存,确保新配置生效 - 业务代码中指定的发件人地址必须和MAIL_FROM_ADDRESS完全一致,否则会被Outlook发信接口拒绝
内容的提问来源于stack exchange,提问作者Ahmed Ibrahim
相关产品推荐
相关产品推荐

