在工匠修补程序上看不到电子邮件配置

Posted

技术标签:

【中文标题】在工匠修补程序上看不到电子邮件配置【英文标题】:Can't see email configuration on artisan tinker 【发布时间】:2020-03-13 11:41:31 【问题描述】:

我已经在 .env 文件上设置了我的电子邮件配置,但是当我从 tinker 检查时显示为空值。

这是我的环境配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=465
MAIL_USERNAME=c57xxxx07f1
MAIL_PASSWORD=44****02fae
MAIL_ENCRYPTION=tls

我无法为此发送电子邮件任何解决方案?

【问题讨论】:

你使用的是什么版本的 Laravel?您是否更改了 config/mail.php 文件? 5.8 不,我没有改变任何东西 我猜这不是全新的 5.8 安装,而是从以前的版本升级而来的?只是想确认您为什么缺少应该在该版本的邮件配置中的配置密钥 【参考方案1】:

尝试找到您的config/mail.php

然后把你的 env 密钥放进去。

env('MAIL_HOST', 'smtp.mailgun.org')

第一个参数是你的环境键,第二个参数是默认值。

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    ...

并清除配置缓存:

php artisan config:clear
php artisan optimize

【讨论】:

@MuhammadSaad 我认为您的环境无法正常工作。尝试在 tinker 中输入ENV('MAIL_PORT') >>> ENV('MAIL_PORT') => "465" 你在设置之前缓存配置吗? 当我运行 config('mail') 时,它会在修补程序中显示所有内容 @lagbox 对不起。我的错。我在终端中运行 php artisan config:clear 而不是 php artisan cache:clear。你说的对。该源代码中没有bootstrap/cache【参考方案2】:

env 文件发生更改后,您需要清除缓存。否则,您的更改不会更新。所以每当你进行更改时需要清除缓存,然后在使用 tinker 之后。

php artisan config:clear

php artisan tinker

config('mail')

【讨论】:

不,你不需要清除缓存存储...缓存存储与配置缓存无关 @lagbox 但是当我尝试cache:clear 命令然后tinker。它正在处理我的本地项目。 缓存存储与配置缓存完全无关 @lagbox 好的,明白了。需要使用config:clear命令进行配置。【参考方案3】:

使用 config('email') 后 如果您没有获得 .env 电子邮件配置,那么

php artisan config:cache

然后

php artisan tinker
config('mail')

得到你的结果

【讨论】:

以上是关于在工匠修补程序上看不到电子邮件配置的主要内容,如果未能解决你的问题,请参考以下文章

工匠中不提供照明/邮件

以编程方式在移动设备上设置电子邮件帐

SQLSTATE [42S02] 工匠修补程序的问题

text 使用修补程序发送测试邮件

配置空客户端邮件

即使经过验证,AWS SES 电子邮件也总是会进入垃圾邮件