Laravel发送电子邮件不起作用

时间:2016-03-10 11:35:20

标签: email laravel smtp laravel-5.1 swiftmailer

我正在尝试使用laravel发送电子邮件,但不知何故它无效我收到以下消息:

  

AbstractSmtpTransport.php第383行中的Swift_TransportException:   预期的响应代码220,但得到代码“421”,消息“421   无法连接到SMTP服务器52.20.34.166(52.20.34.166:587),连接   错误10060“

我的.env文件如下所示:

APP_ENV=local
APP_DEBUG=true
APP_KEY=rFhHPTfEg4nxYEeqVzoQWX70a0AA5uw3

DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=test@test.de
MAIL_PASSWORD=123456789
MAIL_ENCRYPTION=tls

我的mail.php看起来像这样:

<?php

return [

    'driver' => env('MAIL_DRIVER', 'mail'),
    'host' => env('MAIL_HOST', ''),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => 'test@test.de', 'name' => 'test'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,

];

在我的控制器内部,我这样称呼它:

    # Send Mail
    Mail::send('emails.email', $data, function($message) use ($data)
    {
        $message->from($data['email'] , $data['title']);
        $message->to('test@test.de', 'my name')->subject('contact request');
    });

我在代码中找不到错误。谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

我注意到mailtrap为您提供了具体的usernamepassword。您是否尝试使用它们而不是test@test.de;123456789

答案 1 :(得分:0)

您需要在.env上发送有效的电子邮件,找到您的个人邮件配置,然后重试。

也许您想更改from上的配置config/mail.php以显示您的姓名和邮件。

我这样说是因为我发现您拥有主机mailtrap.io,但test@test.de不是该主机的有效用户。

可能587到MAIL_PORT的值不正确。

答案 2 :(得分:-1)

您需要使用此命令:

assimp

它在更改的env文件之前适用于它并键入此命令并运行它。它会起作用。