我将其设置为通过laravel 5从我的Gmail帐户发送邮件。
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=********@gmail.com //email address
MAIL_PASSWORD="*******" //password for that email
MAIL_ENCRYPTION=tls
为了测试邮件发送,我使用了这个
Route::get('/email', function(){
$data = array(
'name' => "Library",
);
Mail::send('mailview',$data,function($message){
$message->from('*******@gmail.com','Library');
$message->to('*******@gmail.com')->subject('Confirmation mail.');
});
return "A email has been sent to you. Check inbox. Also check spambox if not in inbox.";});
但是这给了我以下错误。
AbstractSmtpTransport.php第383行中的Swift_TransportException: 预期的响应代码250,但得到了代码" 530",带有消息" 530 5.7.0必须首先发出STARTTLS命令。 g20sm4065212pfd.55 - gsmtp "
我用Google搜索并发现了与此相关的SO问题。并且到目前为止已经了解到gmail安全设置是罪魁祸首。但是没有找到任何答案来描述如何解决这个问题。 现在我想知道如何配置我的Gmail帐户? [假设我刚刚创建了一个新的gmail帐户。在linux上工作 - 如果此信息可以帮助您。]
答案 0 :(得分:4)
端口465 用于smtps - 在任何SMTP级别通信之前自动启动SSL加密。
端口587 用于msa - 它几乎就像标准SMTP端口一样。如果服务器支持SSL并且您的ISP不过滤服务器的EHLO回复(2014年11月报告),则可以通过SMTP级别的STARTTLS命令启动SSL加密。
(source)
因此,如果您想使用端口号587,则应在设置中将加密设置为空,但对于465,将'ssl'设置为加密将解决问题:
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
OR
'host' => 'smtp.gmail.com',
'port' => 587,
'encryption' => '',
答案 1 :(得分:1)
不确定发生了什么。
port 587
应该有用。
您是否会尝试创建新项目并配置您在此处所写的设置?
我认为这里的一切都没问题。您的项目设置可能还有其他问题。
一旦我面对这样的事情并创建一个适合我的新项目。
答案 2 :(得分:0)
也许您需要在Gmail帐户中启用Less Secure App Access。