laravel中的Swift_TransportException错误

时间:2014-10-09 11:20:35

标签: laravel laravel-4

我正在尝试创建一个通过电子邮件将邮件发送到我的电子邮件地址的联系表单。当我测试它时我得到了这个错误

  

Swift_TransportException

     

预期的响应代码250,但得到了代码" 530",带有消息" 530 5.7.0必须首先发出STARTTLS命令。 bv17sm3597476wib.13 - gsmtp"

这是我的控制器

public function contact()
{

     $data = array(
                'name' => Input::get('name')
                );


            Mail::send('emails.contact', $data, function($message){
                $message->to('test@gmail.com', 'Nikki')->subject('Login Details');
            });
}

这是我的contact.blade.php

{{ Form::open(array('id' => 'contact-frm', 'class' => 'contact-form', 'route' => 'contact')) }}
{{ Form::label('fname', 'Name') }}
{{ Form::text('fname') }}

{{ Form::label('surname', 'Surname') }}
{{ Form::text('surname') }}

{{ Form::label('email', 'Email') }}
{{ Form::text('email') }}

{{ Form::label('message', 'Message') }}
{{ Form::textarea('message') }}

{{ Form::submit('Submit') }}
{{ Form::close()}}

mail.php

'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'myEmail@gmail.com', 'name' => "Nikki"),
'encryption' => 'tls',
'username' => 'myEmail@gmail.com',
'password' => 'MyPassword',
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

5 个答案:

答案 0 :(得分:2)

更改.env时,您需要重新启动服务器

答案 1 :(得分:1)

在Laravel 5中,问题来自.env文件。 Laravel附带的加密值设置会覆盖config/mail.php中的默认设置。在.env中,将MAIL_ENCRYPTION=null更改为MAIL_ENCRYPTION=tls,您就可以了。

答案 2 :(得分:1)

将.env文件“ smtp更改为sendmail”中的邮件驱动程序对我而言适用。

MAIL_DRIVER=sendmail

答案 3 :(得分:0)

检查您的.env文件。

  

我正在使用 mailgun

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=1230
MAIL_USERNAME=user@domain.com
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls

MAILGUN_DOMAIN=user@domain.com
MAILGUN_SECRET=null

我遇到了同样的问题,我的错误是MAIL_ENCRYPTION输入错误。

答案 4 :(得分:0)

更改.env时,您需要重新启动服务器或在Linux终端上运行

php artisan config:cache