首页 > 解决方案 > Mailgun 不显示错误或在 Laravel 中发送

问题描述

当我发送它并没有给我任何错误,但我也没有收到任何电子邮件。我修复了所有 DNS 记录,它有 Mailgun 的绿色复选标记

我的 .env 看起来像这样:

MAIL_MAILER=mailgun
MAIL_HOST=smtp.eu.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=[postmaster username from mailgun]
MAIL_PASSWORD=[smtp password from mailgun]
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS[postmaster email]
MAIL_FROM_NAME=Webpage

我像Laravel 文档所说的那样修复了 config.services

'mailgun' => [
    'domain' => 'your-mailgun-domain',
    'secret' => 'your-mailgun-key',
    'endpoint' => 'api.eu.mailgun.net',
],

并且做了

composer require guzzlehttp/guzzle

在我的 App\Mail 文件夹中,我有 Discount.php

class Discount extends Mailable
{
    use Queueable, SerializesModels;

    public $request;
    public $discount;

    public function __construct($request, $discount)
    {
        $this->request = $request;
        $this->discount = $discount;
    }

    public function build()
    {
        return $this->markdown('emails.discount')
            ->replyTo($this->request['email']);

    }
}

最后,在我的控制器中,我有

   public function find ()
    {
        [ ... ]

        Mail::to('myemail@mywebsite.com')->send(new Discount($request, $discount));

        return redirect()->back()->with('success', true);
    }

每次我发送它都会以“成功”返回,但我没有收到电子邮件

标签: phplaravelmailgun

解决方案


推荐阅读