【发布时间】:2016-05-13 21:28:09
【问题描述】:
错误:
在我的 mail.php 文件中,如果我设置了
'driver' => env('MAIL_DRIVER'),
并将其添加到我的 .env 文件中:
MAIL_DRIVER=log
然后我得到以下错误:
Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "530",
with message "530 5.7.1 Authentication required"
不稳定的解决方法
在我的 mail.php 文件中,我有以下内容:
'driver' => 'log',
工作正常。
结论
我的理论是 mail.php 没有正确读取我的 .env 文件常量,因为用实际字符串替换它可以解决问题。但是,这个文件的默认值都使用 .env 常量,所以我想知道 为什么我的 .env 常量在我的 mail.php 文件中没有被识别?
仅供参考
在同一个应用程序中除了 mail.php 之外的其他文件中,我正在使用其他可以正常工作的 .env 常量。例如,在我的 UserTableSeeder 类中,我有:
factory(App\User::class, 1)->create([
'email' => env('ADMIN_EMAIL'),
'password' => Hash::make(env('ADMIN_PASSWORD')),
'is_admin' => 1
]);
它成功地使用了我的 .env 文件中的以下常量:
ADMIN_EMAIL=xxxxxxx@yahoo.com
ADMIN_PASSWORD=xxxxxxx
我尝试了以下 2 个 php artisan 命令(php artisan cache:clear 和 php artisan config:clear),但是当“log”是我的 .环境文件:
04:52:54 Fri May 13 vagrant@homestead (email_notifications) [130]
~/Code/myapp $ php artisan config:clear
Configuration cache cleared!
05:52:56 Fri May 13 vagrant@homestead (email_notifications) [0]
~/Code/myapp $ php artisan tinker
Psy Shell v0.6.1 (PHP 7.0.2-4+deb.sury.org~trusty+1 — cli) by Justin Hileman
>>> dd(env('MAIL_DRIVER'));
"smtp"
>>> exit
Exit: Goodbye.
05:53:23 Fri May 13 vagrant@homestead (email_notifications) [0]
~/Code/myapp $ php artisan cache:clear
Application cache cleared!
05:53:48 Fri May 13 vagrant@homestead (email_notifications) [0]
~/Code/myapp $ php artisan tinker
Psy Shell v0.6.1 (PHP 7.0.2-4+deb.sury.org~trusty+1 — cli) by Justin Hileman
>>> dd(env('MAIL_DRIVER'));
"smtp"
【问题讨论】:
-
.env可能无法正确解析或其他原因,请尝试在.env('MAIL_DRIVER','log')上添加第二个参数,以便它可以默认记录,启动php artisan tinker并转储env('MAIL_DRIVER')输出什么? -
在修补程序中,dd(env('MAIL_DRIVER'));结果是“smtp”作为输出,它在我的 .env 文件中显示“log”。但是, dd(env('ADMIN_EMAIL'));结果是我的正确电子邮件。我确实注意到,如果我更改我的电子邮件,我必须运行 php artisan cache:clear 之前更新显示在修补程序中,但是 dd(env('MAIL_DRIVER'));仍然导致“smtp”!
-
是的,我看到了,但它实际上并不能解决我的问题
-
您是否正在尝试运行测试?如果是这种情况,请尝试将 MAIL_DRIVER 添加到 phpunit.xml 文件中。
标签: php laravel environment-variables laravel-5.1