无法在 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:
没有发件人地址无法发送消息
我已经在.env
和mail.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' => ['address' => env('MAIL_USERNAME'), 'name' => 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的主要内容,如果未能解决你的问题,请参考以下文章