【问题标题】:Laravel 8 reset password doesn't send emailsLaravel 8 重置密码不发送电子邮件
【发布时间】:2021-10-08 09:17:51
【问题描述】:

我知道这个问题已被多次提出,但我找不到任何解决我的问题的方法。
这是我的 .env 文件的 MAIL 部分:

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=john.doe@domainename.fr
MAIL_FROM_NAME="${APP_NAME}"

在我的代码中,电子邮件是使用 Illuminate\Support\Facades\Mail 类发送的,一切正常。

现在,当涉及到重置密码时,除了没有收到电子邮件外,一切似乎都正常。
我在 var/log/mail.log 文件中没有错误:mail accepted for delivery
我一直跟踪代码到 SwiftMailer send() 函数,但我还没有发现这个问题来自哪里。

有人可以帮助我吗?

【问题讨论】:

  • 这将尝试使用服务器本身的 smtp 服务器来发送邮件。您是否配置了 SMPT 或类似 sendmail 的东西来在您的服务器上发送邮件?
  • @MaartenDev 是的,正如我所说,使用我的代码发送的电子邮件已正确发送和接收。

标签: laravel swiftmailer


【解决方案1】:

在 localhost 项目中使用 .env 文件中的配置:

MAIL_MAILER='smtp'
MAIL_HOST='smtp.gmail.com'
MAIL_PORT=587
MAIL_USERNAME='email@gmail.com'
MAIL_PASSWORD='password'
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS='email@gmail.com'
MAIL_FROM_NAME="${APP_NAME}"

在服务器使用:

MAIL_MAILER='sendmail'
MAIL_HOST='sendmail.googlemail.com'
MAIL_PORT=587
MAIL_USERNAME='email@gmail.com'
MAIL_PASSWORD="password"
MAIL_ENCRYPTION='tls'
MAIL_FROM_ADDRESS='email@gmail.com'
MAIL_FROM_NAME="${APP_NAME}"

【讨论】:

    【解决方案2】:

    它不适用于 Mail_Host=localhost 。 请尝试使用这些配置的 gmail smtp 服务器。

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.googlemail.com
    MAIL_PORT=465
    MAIL_USERNAME=ENTER_YOUR_EMAIL_ADDRESS
    MAIL_PASSWORD=ENTER_YOUR_GMAIL_PASSWORD
    MAIL_ENCRYPTION=ssl
    

    还请在您的 gmail 帐户中使用此“不太安全的应用程序访问”选项。

    【讨论】:

      猜你喜欢
      • 2016-03-01
      • 2013-12-18
      • 2015-08-13
      • 2020-05-19
      • 2015-11-26
      • 2017-09-02
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      相关资源
      最近更新 更多