无法在 laravel 5.2 中发送没有发件人地址的消息我已经设置了 .env 和 mail.php

Posted

技术标签:

【中文标题】无法在 laravel 5.2 中发送没有发件人地址的消息我已经设置了 .env 和 mail.php【英文标题】:Cannot send message without a sender address in laravel 5.2 I have set .env and mail.php both 【发布时间】:2016-04-24 17:43:54 【问题描述】:

忘记密码,laravel 发送电子邮件,错误如下:

Swift_TransportException in AbstractSmtpTransport.php line 162:

没有发件人地址无法发送消息

我已经在.envmail.php 中设置了我的邮件帐户详细信息。

我的 .env :

MAIL_DRIVER=smtp
MAIL_HOST=smtp-mail.outlook.com
MAIL_PORT=587
MAIL_USERNAME=raval_himanshu@live.in
MAIL_PASSWORD=pass
MAIL_ENCRYPTION=tls

我的 mail.php 是

<?php

return [   

'driver' => env('MAIL_DRIVER', 'smtp'),    

'host' => env('MAIL_HOST', 'smtp-mail.outlook.com'),    

'port' => env('MAIL_PORT', 587),  

'from' => ['raval_himanshu@live.in' => null, 'Himanshu Raval' => null],

/*
|--------------------------------------------------------------------------
| E-Mail Encryption Protocol
|--------------------------------------------------------------------------
|
| Here you may specify the encryption protocol that should be used when
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
|
*/

'encryption' => env('MAIL_ENCRYPTION', 'tls'),

/*
|--------------------------------------------------------------------------
| SMTP Server Username
|--------------------------------------------------------------------------
|
| If your SMTP server requires a username for authentication, you should
| set it here. This will get used to authenticate with your server on
| connection. You may also set the "password" value below this one.
|
*/

'username' => env('raval_himanshu@live.in'),



'sendmail' => '/usr/sbin/sendmail -bs',

];

我也尝试过php artisan config:cache,但之后它给出了同样的错误。

【问题讨论】:

***.com/questions/31871806/… 对不起我做错了!! 【参考方案1】:

我在mail.php中犯了错误

'from' => ['raval_himanshu@live.in' => null, 'Himanshu Raval' => null],

应该是这样的

'from' => ['address' => 'raval_himanshu@live.in', 'name' => 'Himanshu Raval'],

【讨论】:

解决了我的问题。谢谢 可以从 .env 文件中设置 from 和 name 值吗?它似乎不起作用。 'from' => ['address' => env('MAIL_FROM'), 'name' => env('SEND_NAME')], 'from' =&gt; ['address' =&gt; env('MAIL_USERNAME'), 'name' =&gt; null] 为我工作。【参考方案2】:

试试下面的代码,因为这对我有用 在 .env 文件中

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=myAPPpassword_Generatedfromhttps://myaccount.google.com/security#signin
MAIL_ENCRYPTION=tls

config/mail.php我改成这样

 'from' => ['address' => 'myemail@gmail.com', 'name' => 'Admin.com'],//default :'from' => ['address' => null, 'name' => null],

然后运行php artisan config:cache清除配置缓存并使用新配置再次缓存,希望可以帮助

【讨论】:

【参考方案3】:

只需运行php artisan optimize:clear,它对我有用。

【讨论】:

【参考方案4】:

您应该在您创建的邮件中的构建函数中执行此操作,示例如下所示

public function build()
    
        return $this->from('example@gmail.com')->view('welcome');
    

【讨论】:

【参考方案5】:

.env 更新后,请重启 php artisan (CTRL+C then php artisan serve)

【讨论】:

以上是关于无法在 laravel 5.2 中发送没有发件人地址的消息我已经设置了 .env 和 mail.php的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 5.2 中手动发送密码重置请求?

无法在 laravel 5.2 中查询 json 数据

Laravel 5.2:邮件没有从cron-job发送,从邮件响应中收到错误

在 Laravel 5.4 中向多个抄送收件人发送电子邮件

如何在 Laravel 5.2 中发送多个参数 AJAX

Laravel 5.2 路由仅适用于根目录