使用流明发送邮件

时间:2019-02-21 06:15:50

标签: laravel email smtp lumen

Mail.php

return [
 'driver' =>'smtp',
 'host' => 'smtp.gmail.com',
 //'port' => 587,
 'port' =>465,
 //'encryption' =>'tls',
 'encryption' =>'ssl',
 'username' => 'xxxxxxxx@gmail.com',
 'password' => 'xxxxxxx',
 // 'sendmail' => '/usr/sbin/sendmail -bs',
 'sendmail' => '/usr/sbin/sendmail -t',
 'markdown' => [
        'theme' => 'default',
        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],
];

控制器

$data = []; // Empty array

        Mail::send('email.credentials', $data, function($message)
        {
            $message->to('xxxxxx@gmail.com', 'Jon Doe')->subject('Welcome!');
        });

错误

  

Swift_TransportException无法与主机建立连接   smtp.gmail.com [连接失败,因为已连接   一段时间后未正确响应,或已建立   连接失败,因为连接的主机无法响应。

我尝试过...

  • 更改ssl / tls

  • 更改端口

  • 在composer.json中添加"guzzlehttp/guzzle": "~5.3|~6.0"

  • 在StreamBuffer.php中添加新行

      

    $ options = array_merge($ options,array('ssl'=> array('verify_peer'=>   false,'verify_peer_name'=> false,'allow_self_signed'=> true))));

请帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

1。需要说明/邮件

确保使用与基础框架相同的版本(即,如果您使用的是Lumen v。5.3,请使用composer require illuminate / mail“ 5.3。*”)。

skipna

2。设置Lumen bootstrap / app.php

首先,打开bootstrap.php并取消注释以下几行:

composer require illuminate/mail "5.5.*"

此外,在您未注释的最后一行下面添加以下行:

$app->withFacades();
$app->register(App\Providers\AppServiceProvider::class);

这将允许您定义“服务”配置文件并设置邮件服务。现在我知道通常使用Lumen在.env文件中完成配置,我们将很快使用它,但是首先我们需要编写一个小的配置文件以映射到$app->configure('services'); 文件。

3。创建您的配置文件

在安装的根目录下创建一个名为config的新文件夹(如果尚不存在)。在config文件夹中,创建两个新文件,一个名为services.php,另一个名为.env

**mail.php**. 文件中,粘贴以下内容:

services.php

最后,将以下内容添加到您的.env文件中:

<?php
return [
    'mailgun' => [
        'domain' => env('MAILGUN_DOMAIN'),
        'secret' => env('MAILGUN_SECRET'),
    ],
];

请确保使用您的实际密钥和域替换那些狡猾的占位符。如果您不使用Mailgun,则可以随时使用其他邮件提供程序。如果您打算使用其他提供商,请查看一下文档,一旦您准备好了,它们就很容易设置。

4。发送电子邮件!

要发送电子邮件,请在您的课程中使用以下选项之一(取决于您的偏好):

MAIL_DRIVER=mailgun
MAILGUN_DOMAIN=<your-mailgun-domain>
MAILGUN_SECRET=<your-mailgun-api-key>

$ data = []; //空数组

use Illuminate\Support\Facades\Mail;

最后,请不要忘记阅读 Laravel Mail docs,以获取有关如何使用该强大库的更多信息。