首页 >后端开发 >php教程 >如何在Laravel发送电子邮件

如何在Laravel发送电子邮件

Joseph Gordon-Levitt
Joseph Gordon-Levitt原创
2025-03-07 01:15:24219浏览

How to Send Emails in Laravel

本教程探讨了Laravel的电子邮件功能,利用Symfony Mailer组件。 我们将介绍配置,创建可邮寄类和发送电子邮件,并在一个实际示例中达到最终

> configuration:

Laravel通过Symfony Mailer的包装器简化了电子邮件管理。 主配置文件为

。 该文件定义了邮件器(例如SMTP,Sendmail,Mailgun等)及其设置。 默认邮件器由config/mail.php>环境变量指定(inMAIL_MAILER)。 .env对于SMTP,您需要在您的

> file中配置

MAIL_HOSTMAIL_PORTMAIL_ENCRYPTIONMAIL_USERNAMEMAIL_PASSWORD驱动程序需要在中设置正确的.env路径。 sendmail地址也可配置。 第三方服务(MailGun,邮政标志,SES)需要在sendmail>中进行其他设置 config/mail.phpfrom创建一个可邮递类:config/services.php>

>一个可邮递的类处理电子邮件创建和发送。 使用工匠命令:

这将在中生成

类。 一个典型的可邮寄类包括:

php artisan make:mail DemoEmail

方法初始化数据,而DemoEmail设置电子邮件详细信息(发件人,视图,附件等)。 创建相应的视图文件(app/Mail/DemoEmail.php

)。
<?php

namespace App\Mail;

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

class DemoEmail extends Mailable
{
    use Queueable, SerializesModels;

    public $demo;

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

    public function build()
    {
        return $this->from('sender@example.com')
                    ->view('mails.demo')
                    ->text('mails.demo_plain')
                    ->with(['testVarOne' => '1', 'testVarTwo' => '2'])
                    ->attach(public_path('/images/demo.jpg'), ['as' => 'demo.jpg', 'mime' => 'image/jpeg']);
    }
}
>

__construct发送电子邮件: build resources/views/mails/demo.blade.php>一个控制器(例如,resources/views/mails/demo_plain.blade.php)使用

>

方法发送电子邮件。 添加一条路由

>访问控制器。

MailController用于测试而无需实际发送电子邮件,将Mail设置为

> in
<?php

namespace App\Http\Controllers;

use App\Mail\DemoEmail;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function send()
    {
        $demoData = new \stdClass();
        $demoData->demo_one = 'Demo Value 1';
        $demoData->demo_two = 'Demo Value 2';
        $demoData->sender = 'Sender Name';
        $demoData->receiver = 'Receiver Name';

        Mail::to("receiver@example.com")->send(new DemoEmail($demoData));
    }
}
>将电子邮件记录到

>。 Mail::to()->send()routes/web.php结论:

> Laravel的邮件系统建立在Symfony Mailer上,为电子邮件管理提供了简化的方法。 本教程展示了从配置到发送电子邮件的过程,为将电子邮件功能集成到您的Laravel应用程序中提供了坚实的基础。 探索Envato市场以获取进一步的Laravel资源。MAIL_DRIVER

以上是如何在Laravel发送电子邮件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn