【问题标题】:Send mail with Laravel使用 Laravel 发送邮件
【发布时间】:2015-12-17 19:35:21
【问题描述】:

我尝试使用 Laravel 发送邮件,但它不起作用。 我试过 Mandrill、mailgun 和 gmail。 Mandrill 返回类似“缺少 SPF 和 DKIM”的消息。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME="my gmail adress"
MAIL_PASSWORD="my gmail password"
MAIL_ENCRYPTION=tls
MAIL_PRETEND=true

在我的 EmailController 中:

Mail::send('emails.welcome', ['name' => 'Novice'], function($message){
    $message->to('f***@gmail.com', 'Fabien')->subject('Bienvenue !');
});

那是路线:

Route::resource('emails', 'EmailController');

我该如何解决?

【问题讨论】:

标签: php email laravel spf dkim


【解决方案1】:

MAIL_PRETEND 更改为false。此选项用于测试发送邮件而不发送。

另外,从 Laravel 5.2 开始,pretend 选项将不再存在。

pretend 邮件配置选项已被删除。相反,请使用log 邮件驱动程序,它执行与pretend 相同的功能并记录有关邮件消息的更多信息。

阅读更多:Upgrading to 5.2Mail & Local Development

【讨论】:

  • 嗨,我尝试使用 false 值并且没有 MAIL_PREVEND var,但什么也没发生。
  • @Swarovski 在config/mail.php 中查找pretend 键,看看那里有什么值,旧的Laravel 可以有falsetrue 而不与.env 文件集成。
  • @Svarowski 在storage/logs 目录中,您应该有日志文件。尝试发送一封电子邮件,然后在*.log 文件中查看那里出现的内容。还尝试将debug 设置为true 值并检查发送邮件的返回值($mail = Mail::send(...); var_dump($mail);)并检查什么是响应。默认情况下,SwiftMailer 返回接受投递的收件人数量 (swiftmailer/lib/classes/Swift/Mailer.php:74-92)。
  • 当我转储 $mail 时,我收到此消息“int 1”。调试为真,.log 文件中没有新内容
  • @Swarovski 可能会尝试将端口更改为MAIL_PORT=465,并将加密更改为MAIL_ENCRYPTION=ssl。您还可以阅读有关 Gmail 配置的更多信息:support.google.com/a/answer/176600?hl=en。问题不在于您的代码,而在于您的设置或您的服务器或您的 Gmail 帐户。 SwiftMailer 告诉您,您将一封电子邮件发送给一位收件人,因此在 PHP 中一切正常。
猜你喜欢
  • 1970-01-01
  • 2015-02-26
  • 2017-05-24
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 2021-03-28
  • 2017-10-12
  • 2017-01-25
相关资源
最近更新 更多