Laravel: 如何使用sendmail发送邮件
Laravel: How to send emails using sendmail
我正在使用 Laravel 7,我想使用 sendemail 驱动程序发送电子邮件,使用 Laravel Mail Facade 因为它在我使用 [=25] 时有效=] 邮件功能,但我想使用 Laravel 邮件门面。
这是我的 .env 文件电子邮件配置
MAIL_DRIVER=sendmail
MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'
这是我在 config/mail 中的默认邮件。php
'default' => env('MAIL_MAILER', 'sendmail'),
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
],
'ses' => [
'transport' => 'ses',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => '/usr/sbin/sendmail -bs',
],
'log' => [
'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
'transport' => 'array',
],
],
什么是正确的配置如何使其工作?
勾选How to send email with Laravel using sendmail?,你就会得到完整的想法。
从你的问题中我无法确切地看出你在这个过程中走了多远,所以我会尝试为你解释一下。
您需要使用 Artisan 创建电子邮件:
php artisan make:mail MailName
Laravel 中的邮件基本上只是视图,因此在邮件的 build()
功能中,引用如下视图:
$this->view('folder.view');
您需要配置发送电子邮件的电子邮件地址,您可以在邮件文件中执行此操作:
$this->from('youremail@domain.com');
或者您可以在 mail.php
文件中全局设置一个:
'from' => ['address' => 'example@example.com', 'name' => 'App Name'],
要发送邮件,请使用以下行:
use Illuminate\Support\Facades\Mail; // Put this at the top of your controller
Mail::to($recipient)->send(new MailName);
如果您在视图中使用变量,则需要传递它们,您可以这样做:
use Illuminate\Support\Facades\Mail; // Put this at the top of your controller
Mail::to($recipient)->send(new MailName($variables));
有关抄送、附件等其他信息,请参阅the docs。
我正在使用 Laravel 7,我想使用 sendemail 驱动程序发送电子邮件,使用 Laravel Mail Facade 因为它在我使用 [=25] 时有效=] 邮件功能,但我想使用 Laravel 邮件门面。
这是我的 .env 文件电子邮件配置
MAIL_DRIVER=sendmail
MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'
这是我在 config/mail 中的默认邮件。php
'default' => env('MAIL_MAILER', 'sendmail'),
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
],
'ses' => [
'transport' => 'ses',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => '/usr/sbin/sendmail -bs',
],
'log' => [
'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
'transport' => 'array',
],
],
什么是正确的配置如何使其工作?
勾选How to send email with Laravel using sendmail?,你就会得到完整的想法。
从你的问题中我无法确切地看出你在这个过程中走了多远,所以我会尝试为你解释一下。
您需要使用 Artisan 创建电子邮件:
php artisan make:mail MailName
Laravel 中的邮件基本上只是视图,因此在邮件的 build()
功能中,引用如下视图:
$this->view('folder.view');
您需要配置发送电子邮件的电子邮件地址,您可以在邮件文件中执行此操作:
$this->from('youremail@domain.com');
或者您可以在 mail.php
文件中全局设置一个:
'from' => ['address' => 'example@example.com', 'name' => 'App Name'],
要发送邮件,请使用以下行:
use Illuminate\Support\Facades\Mail; // Put this at the top of your controller
Mail::to($recipient)->send(new MailName);
如果您在视图中使用变量,则需要传递它们,您可以这样做:
use Illuminate\Support\Facades\Mail; // Put this at the top of your controller
Mail::to($recipient)->send(new MailName($variables));
有关抄送、附件等其他信息,请参阅the docs。