我正在尝试通过键入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
发布于 2015-03-24 23:47:33
我知道它现在对你很有效,@Vanheman6,但这就是对我有效的方法,以防对其他人也是如此。
我将正在使用的邮件服务的详细信息添加到我的.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文件仍将继续向应用程序显示旧的邮件数据。
发布于 2015-07-03 03:26:13
对于laravel5.1,我的.env文件配置如下所示
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@gmail.com
MAIL_PASSWORD=****************
MAIL_ENCRYPTION=tls
这里最重要的是,我创建了gmail应用程序特定的密码(16位)。
我需要再透露一件事,因为没有任何配置的运气。也就是说,每当我更改.env文件时,都需要运行此命令
php artisan config:cache
这是最重要的,因为如果没有这个命令,laravel会从它的缓存中执行以前的设置。我花了10多个小时才弄明白。
发布于 2015-03-17 22:00:01
由于配置文件中的用户名和密码设置错误,您将收到身份验证错误。
更改此设置:
'username' => env('MyUsername@gmail.com'),
'password' => env('MyPassword'),
要这样做:
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
env
方法检查您的.env文件。在.env文件中,您调用这些MAIL_USERNAME
,因此这就是您需要传递给env
方法的内容。
一个故障排除提示:添加dd(Config::get('mail'));
,这样您就可以看到实际生成的配置。这将帮助您发现像这样的问题,并准确地知道Laravel将尝试和使用哪些信息。因此,您可能希望在测试路径中暂时停止该测试,以检查您所拥有的内容:
Route::get('test', function()
{
dd(Config::get('mail'));
});
https://stackoverflow.com/questions/29100877
复制相似问题