邮件程序 [SMTP] 未定义。当我在 laravel 7 发送电子邮件时

Mailer [SMTP] is not defined. when I am sending email in laravel 7

我第一次在 Laravel 7 中看到这个问题时遇到了问题。

InvalidArgumentException: Mailer [SMTP] is not defined. in file /home1/clinicph/clinic/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php on line 110

这是我的 .env 文件

MAIL_MAILER=SMTP
MAIL_HOST=mail.clinicphase.com
MAIL_PORT=465
MAIL_USERNAME="info@clinicphase.com"
MAIL_PASSWORD=********
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS="info@clinicphase.com"
MAIL_FROM_NAME="${APP_NAME}"

这是我的控制器,

Mail::send('emails.contact_us', [
            'name' => $request->name,
            'email' => $request->email,
            'subject' => 'Message from website',
            'mobile_number' => $request->mobile_number,
            'visitor_msg' => $request->message
        ], function ($message) use ($data, $site_email) {
            $message->from($data['email']);
            $message->to($site_email);
            $message->subject('Message from website');
        });

如果您查看 config/mail.php 文件,您会看到设置了哪些邮件程序。

默认情况下 Laravel 7,它有一个 smtp 邮件程序:

https://github.com/laravel/laravel/blob/7.x/config/mail.php#L37

邮件程序名称是 case-sensitive(就像任何其他配置一样)。因此,除非您更改了它,否则您需要在 .env 文件中使用 smtp 而不是 SMTP