如何通过控制器访问.env电子邮件变量

时间:2018-10-03 11:18:07

标签: laravel email

我有很多电子邮件必须发送给网站管理员,这是.env中声明的电子邮件

因此,对于我创建的每个邮件,对于$ this-> to(),我想添加.env中定义的电子邮件,以便万一发生更改,我不必手动处理每个邮件更改它。

所以我只是为了测试目的而尝试了这个

Route::get('send', function(){
    Mail::send(new AdminEmail());
})->name('test.email');

Mailable在构造函数中如下所示:

public function __construct()
{
    $this->from('no-replya@gmail.com', 'Tester');
    $this->to(env("MAIL_USERNAME"), 'Admin');
}

在.env中,我具有以下配置:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=admin@gmail.com
MAIL_PASSWORD=z6c4czc44
MAIL_ENCRYPTION=tls

当我尝试发送电子邮件时,出现以下错误:

Address in mailbox given [] does not comply with RFC 2822, 3.6.2.

因此,似乎无法正确访问该变量。

如何从.env文件访问电子邮件?

1 个答案:

答案 0 :(得分:0)

尝试使用env("MAIL_USERNAME")代替config('mail.username')

它首先尝试在.env文件中获取配置变量值,如果在.env文件中找不到该变量值,它将从config/mail.php

中获取变量值