web-dev-qa-db-ja.com

Laravel 5.5mailgunがメールを送信しない-エラーなし

Mailgunでメールを送信しようとしていますが、メールが送信されず、エラーがまったく発生しないため、理由がわかりません。

これは私のコードです:

mail.php:

'driver' => env('MAIL_DRIVER', 'mailgun'),

services.php:

'mailgun' => [
    'domain' => env('sandbox1e...60.mailgun.org'),
    'secret' => env('key-146...419'),
],

EmailController.php:

public function send($email, $uuid = null)
{
    if($uuid == null){
        $uuid = User::get()->where('customer_email' , $email)->first()->email_confirmed;
    }

    return Mail::to($email)->send(new ConfirmEmail($uuid));

}

ConfirmEmail.php:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ConfirmEmail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $uuid;

    public function __construct($uuid)
    {
        $this->uuid = $uuid;

    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->from('[email protected]')
            ->view('emails.confirm');
    }
}

送信したいメールアドレスをmailgunに追加しましたが、機能しません。私は何か間違ったことをしていますか、それともこれをデバッグする方法はありますか?

8
Luuk Wuijster

構成が間違っています:

'mailgun' => [
    'domain' => env('sandbox1e...60.mailgun.org'),
    'secret' => env('key-146...419'),
],

Env関数は、指定した名前の環境変数を探し、値を返します。これを環境変数の名前に変更して.envで定義するか、env関数を使用しないでください。

9
Esteban Garcia

Esteban Garcia の答えは正しいですが、構成がどのように正確に表示されるかを示すコードスニペットで改善したいと思います。

あなたのconfig/services.php、以下に示すように構成を残します。

'mailgun' => [
        'domain' => env('MAILGUN_DOMAIN'),
        'secret' => env('MAILGUN_SECRET'),
    ],

あなたの.envファイル。ここで、実際のメールガン資格情報を定義します。

MAIL_DRIVER=mailgun
MAILGUN_DOMAIN=sandbox1e...60.mailgun.org
MAILGUN_SECRET=key-146...419
7
Richie254