首页 > 解决方案 > 如何通过 gmail smtp 使用 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

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

    $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é');
    }

谢谢。

标签: laravelemail

解决方案


需要将您的.env文件更改为以下内容:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls

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

php artisan config:cache

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

如何生成应用密码:

  1. 转到您的Google 帐户

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

  3. 登录Google面板上,点击应用密码。(注意:如果您无法访问该页面,两步验证是:未为您的帐户设置,仅设置安全密钥)

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

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

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

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


推荐阅读