尝试让Laravel 5的邮件功能正常工作。
尝试让Laravel 5的邮件功能正常工作。
我试图通过输入URL发送电子邮件给指定的用户,但我遇到了以下错误:
在AbstractSmtpTransport.php的行383中,出现了Swift_TransportException:
预期响应代码为250,但收到代码“530”,带有消息“530 5.7.1
需要进行认证”
到目前为止,我仅尝试使用Gmail使其正常工作。我该怎么做才能让它工作?
这是我目前拥有的内容:mail.php
<?php return [ 'driver' => env('MAIL_DRIVER',' smtp'), 'host' => env('MAIL_HOST', 'smtp.gmail.com'), 'port' => env('MAIL_PORT', 587), 'from' => ['address' =>"MyUsername@gmail.com" , 'name' => "example"], 'encryption' => 'tls', 'username' => env('MyUsername@gmail.com'), 'password' => env('MyPassword'), 'sendmail' => '/usr/sbin/sendmail -bs', 'pretend' => false, ];
这是我的路由:
Route::get('test', function() { Mail::send('Email.test', [], function ($message) { $message->to('example@gmail.com', 'HisName')->subject('Welcome!'); }); });
这是我的控制器中的内容:
class MailController extends Controller { public function Sending_Email() { $this->call('GET','Email.test'); return View('Email.test'); } }
这是我的.env文件中的内容:
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=MyUsername@gmail.com MAIL_PASSWORD=MyPassword
admin 更改状态以发布 2023年5月24日
我的Laravel 5.1中的.env文件配置如下:
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=example@gmail.com MAIL_PASSWORD=**************** MAIL_ENCRYPTION=tls
其中最重要的是我创建了16位的Gmail应用程序特殊密码。
我需要透露一件更重要的事情,因为没有任何的配置能成功。也就是说,每当我更改.env文件后,需要运行此命令:
php artisan config:cache
这是最最最重要的,因为如果没有这个命令,Laravel会执行它的缓存中的先前设置。我需要花费超过10个小时才能弄清楚。
我知道@Vantheman6现在能正常工作了,但这是对我有效的方法,如果对别人也有用的话:
我在我的.env文件中添加了我正在使用的邮件服务的详细信息。确保以下细节
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=MyUsername@gmail.com MAIL_PASSWORD=MyPassword
在.env文件中是准确的。
注意:编辑.env文件后不要忘记重新启动服务器,这样它才能获取您输入的新数据。
使用以下命令清除配置缓存:
php artisan config:cache
如果您不重新启动服务器,即使您进行了更改可能会导致此错误,.env文件仍将继续向应用程序呈现旧的邮件数据。