无法使用Laravel SMTP驱动程序将邮件发送到gmail帐户,并且没有收到任何错误

时间:2019-05-01 13:33:01

标签: laravel email smtp

我正在Localhost中构建Laravel 5.8应用程序。

我通过以下方式配置了.env文件:

MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=465 (took from my hosting provider)
MAIL_USERNAME=info@mydomain.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=ssl

我运行了php artisan make:mail DemoEmail,并以如下方式配置了文件DemoMail.php

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class DemoEmail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * The demo object instance.
     *
     * @var Demo
     */
    public $demo;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($demo)
    {
        $this->demo = $demo;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->from('info@mydomain.com')
                    ->view('mails.demo')
                    ->text('mails.demo_plain');
    }
}

然后,我在views/mails/demo.blade.phpviews/mails/demo_plain.blade.php中构建视图。 我在web.phpRoute::get('/sendmail', 'MailController@send');中注册了该路线。 最后,我生成并构建了控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Mail\DemoEmail; 
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function send()  
    {
        $objDemo = new \stdClass();
        $objDemo->sender = 'John';
        $objDemo->receiver = 'John Doe';

        Mail::to("myaccount@gmail.com")->send(new DemoEmail($objDemo));
        // Mail::to("myaccount@mydomain.com")->send(new DemoEmail($objDemo));
    }
}

当我将电子邮件发送到我的个人域邮件帐户时,它就会到达。将电子邮件发送到任何gmail帐户时,它不会到达。我试图检查垃圾邮件文件夹,它是空的。另外,我启用了不太安全的应用程序。 没有引发任何错误。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

仅Gmail帐户可能表明dns问题。或过时的TLS或SSL加密。 .env文件是我们的密钥,可能需要php artisan config:进行更改后清除。只是我的2美分

答案 1 :(得分:0)

可能为时已晚,但我遇到了同样的问题(在我的本地计算机中)。但是在我将项目上传到服务器后问题就解决了。