如何通过gmail smtp使用laravel发送邮件?

loi*_*eek 2 email laravel

我想在我的网站上建立联系我们页面,我已经成功地使用 mailtrap 做到了,但是当我想用 gmail smtp 服务器发送时,我什么也没收到,也没有收到错误。这是我的 .env 邮件配置:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=myemail
MAIL_PASSWORD=my_app_password
MAIL_ENCRYPTION=ssl
Run Code Online (Sandbox Code Playgroud)

和我用来发送电子邮件的代码:

    $obj=new \stdClass();       
    $obj->contenu=$request->input('contenu');
    $obj->objet=$request->input('objet');
    $obj->email=$request->input('email');
    $data=array('contenu'=>$obj->contenu,'email'=>$obj->email);
    Mail::send("front.contactUs",$data,function ($message) use ($obj){
        $message->from($obj->email);
        $message->to('salondesbelleslettres@gmail.com')
                ->subject($obj->objet);
    });
    if(count(Mail::failures())>0){
        return redirect()->back()->with('error','Votre demande na pas ete soumise');
    }else{
        return redirect()->back()->with('success','Merci de Nous Avoir Contacté');
    }
Run Code Online (Sandbox Code Playgroud)

谢谢。

Udh*_*iya 5

需要将您的.env文件更改为如下所示:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls
Run Code Online (Sandbox Code Playgroud)

.env编辑完成后,请在终端中输入此命令以清除缓存:

php artisan config:cache
Run Code Online (Sandbox Code Playgroud)

您需要生成应用密码,您可以在.env文件中使用该应用密码。

如何生成应用密码:

  1. 转到您的Google 帐户

  2. 在左侧导航面板上,单击安全性

  3. 签名谷歌面板中,单击应用程序的密码。(注意:如果您无法进入该页面,两步验证是:未为您的帐户设置,仅设置安全密钥)

  4. 在底部,单击选择应用程序并选择您正在使用的应用程序。

  5. 单击选择设备并选择您正在使用的设备。
  6. 点击生成
  7. 按照说明在您的设备上输入应用程序密码(黄色栏中的 16 个字符代码)。
  8. 单击完成

完成后,您将不会再看到该应用密码代码。

注意:您可能无法为不太安全的应用创建应用密码。