如何在 Laravel 11 中发送电子邮件

任何 Web 应用程序最基本和最常规的功能都是向其用户、客户甚至员工发送有关任何内容的电子邮件,包括新闻通讯。

Laravel 提供了一个干净、简单的电子邮件 API 来向您的客户或用户发送电子邮件。

它提供了通过 SMTP、Mailgun、Postmark、Amazon SES 和 Sendmail 发送电子邮件的驱动程序,使我们能够通过本地或基于云的服务发送邮件来快速入门。

在本教程中,我将使用 SMTP 协议和名为“Mailtrap.io”的简单电子邮件测试客户端。

以下是在 Laravel 11 中发送电子邮件的分步指南:

第 1 步:在 mailtrap 上设置帐户

访问 https://mailtrap.io 并注册一个帐户:

注册后,你会看到类似这样的内容:

邮件陷阱 SMTP 设置邮件陷阱 SMTP 设置

在上图中,点击“显示凭据”按钮,将显示 SMTP 和 POP3 协议的凭据,如下所示:

邮件陷阱凭据

我将使用 SMTP 协议发送电子邮件。 因此,我们需要所有配置并将它们放入 Laravel 的 .env 文件中。

第 2 步:安装 Laravel 11

composer create-project --prefer-dist laravel/laravel emails

它将为我们安装全新的 Laravel,如下所示:

新的 Laravel 安装

进入项目内部:

cd emails

步骤 3:将 mailtrap 凭据添加到 .env 文件

如果您也使用 mailtrap,请打开项目根目录的 .env 文件并添加以下配置:

MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_pwd
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="support@appdividend.com"
MAIL_FROM_NAME="${APP_NAME}"

保存此文件,您的邮件陷阱配置就准备好了

第 4 步:创建邮件类

Laravel 提供了一个方便的 artisan 命令来生成 Mailable 类。 此类封装了与特定电子邮件相关的所有逻辑:

键入以下命令来创建可邮寄的类:

php artisan make:mail OrderShipped

上面的命令在 app\Mail 目录中创建了一个 OrderShipped.php 文件。

这是修改后的 OrderShipped.php 文件:

order = $order;
    }

    /**
     * Get the message envelope.
     */
    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Order Shipped',
        );
    }

    /**
     * Get the message content definition.
     */
    public function content(): Content
    {
        return new Content(
            view: 'mails.ordershipped',
            with: [
                'order_number' => $this->order->order_number,
                'order_amount' => $this->order->order_amount,
            ],
        );
    }

    /**
     * Get the attachments for the message.
     *
     * @return array
     */
    public function attachments(): array
    {
        return [];
    }
}

Mailable 类具有信封()、内容() 和附件() 方法。

Envelope() 方法返回一个 Illuminate\Mail\Mailables\Envelope 对象,该对象定义邮件的主题,有时还定义邮件的收件人。

content() 方法返回一个 Illuminate\Mail\Mailables\Content 对象,该对象定义将用于生成消息内容的 Blade 模板。

Attachments() 数组返回发送给收件人的所有附件。

在此示例中,Mailable 类接受 $order 对象并将其传递到 mails.ordershipped 视图,并呈现电子邮件的内容。

第 5 步:创建电子邮件视图

在 resources\views 文件夹和该文件夹中创建一个名为 mails 的新文件夹。

在 mails 文件夹中,创建一个名为 ordershipped.blade.php 的新文件并添加以下代码。



    
    
    Order Shipped


:not(.darkmode--activated) .darkmode-toggle.darkmode-toggle{--wpr-bg-3fe8fb8a-5604-4727-83e3-dcca76198f9d: url('https://0xzx.com/wp-content/plugins/dark-mode-toggle-pro/assets/img/light.svg');}.darkmode--activated .darkmode-toggle.darkmode-toggle{--wpr-bg-18f6ba3a-5449-4697-ba43-66c34e18130b: url('https://0xzx.com/wp-content/plugins/dark-mode-toggle-pro/assets/img/dark.svg');}.navhot:before{--wpr-bg-17b84262-a10c-40c6-ae22-4730d7ab6c68: url('https://0xzx.com/img/burn-fire-icon.svg');}.coinzilla-fav{--wpr-bg-99a6b7a1-3094-48a5-a371-08988bd4ab7c: url('https://0xzx.com/img/digital-ads-icon.svg');}.telegram-group{--wpr-bg-f8c5cc9a-b25c-43a4-9c1f-b9dd0a1e6649: url('https://0xzx.com/img/bitcoin-money-icon.svg');}

const rocket_pairs = [{"selector":":not(.darkmode--activated) .darkmode-toggle.darkmode-toggle","style":":not(.darkmode--activated) .darkmode-toggle.darkmode-toggle{--wpr-bg-3fe8fb8a-5604-4727-83e3-dcca76198f9d: url('https:\/\/0xzx.com\/wp-content\/plugins\/dark-mode-toggle-pro\/assets\/img\/light.svg');}","hash":"3fe8fb8a-5604-4727-83e3-dcca76198f9d","url":"https:\/\/0xzx.com\/wp-content\/plugins\/dark-mode-toggle-pro\/assets\/img\/light.svg"},{"selector":".darkmode--activated .darkmode-toggle.darkmode-toggle","style":".darkmode--activated .darkmode-toggle.darkmode-toggle{--wpr-bg-18f6ba3a-5449-4697-ba43-66c34e18130b: url('https:\/\/0xzx.com\/wp-content\/plugins\/dark-mode-toggle-pro\/assets\/img\/dark.svg');}","hash":"18f6ba3a-5449-4697-ba43-66c34e18130b","url":"https:\/\/0xzx.com\/wp-content\/plugins\/dark-mode-toggle-pro\/assets\/img\/dark.svg"},{"selector":".navhot","style":".navhot:before{--wpr-bg-17b84262-a10c-40c6-ae22-4730d7ab6c68: url('https:\/\/0xzx.com\/img\/burn-fire-icon.svg');}","hash":"17b84262-a10c-40c6-ae22-4730d7ab6c68","url":"https:\/\/0xzx.com\/img\/burn-fire-icon.svg"},{"selector":".coinzilla-fav","style":".coinzilla-fav{--wpr-bg-99a6b7a1-3094-48a5-a371-08988bd4ab7c: url('https:\/\/0xzx.com\/img\/digital-ads-icon.svg');}","hash":"99a6b7a1-3094-48a5-a371-08988bd4ab7c","url":"https:\/\/0xzx.com\/img\/digital-ads-icon.svg"},{"selector":".telegram-group","style":".telegram-group{--wpr-bg-f8c5cc9a-b25c-43a4-9c1f-b9dd0a1e6649: url('https:\/\/0xzx.com\/img\/bitcoin-money-icon.svg');}","hash":"f8c5cc9a-b25c-43a4-9c1f-b9dd0a1e6649","url":"https:\/\/0xzx.com\/img\/bitcoin-money-icon.svg"}]; const rocket_excluded_pairs = [];

    

Your order has been shipped!

Order Number: {{ $order_number }}

Order Amount: ${{ $order_amount }}

var rocket_lcp_data = {"ajax_url":"https:\/\/0xzx.com\/wp-admin\/admin-ajax.php","nonce":"f6439116ee","url":"https:\/\/0xzx.com\/2024042920324348478.html","is_mobile":false,"elements":"img, video, picture, p, main, div, li, svg","width_threshold":1600,"height_threshold":700,"debug":null}

此模板呈现有关电子邮件中的订单的信息。

第 6 步:发送电子邮件

要发送电子邮件,我们需要使用邮件外观。

我们可以在 Controller 或 web.php 文件中编写发送电子邮件的代码。

对于本教程,我们在 web.php 文件中编写如下代码:

order_number = 1110;
    $order->order_amount = 300;

    Mail::to('krunal@appdividend.com')->send(new OrderShipped($order));
    
    return "Email sent successfully";
});

这里,Mail::to() 方法定义收件人的电子邮件地址,send() 方法发送指定的 Mailable 类。

保存此文件,转到终端,然后启动开发服务器:

php artisan serve

转到浏览器并导航到此 URL:http://localhost:8000/order/email

如果您的所有电子邮件配置均正确,您将看到以下屏幕:

邮件发送成功

现在,检查邮件陷阱收件箱并查看电子邮件中的内容:

mailtrap 上收到已订购的电子邮件

我们收到了包含订单号和订单金额的电子邮件。

这就是使用 mailtrap 从 Laravel 11 应用程序发送电子邮件的全部内容。

帖子浏览量:1 分享于:

克鲁纳尔·拉蒂亚

Krunal 在计算机科学领域拥有八年多的职业生涯,他的专业知识植根于坚实的实践经验基础,辅之以对知识的不断追求。

如何使用 Socialite 通过 Google 登录您的 Laravel 11 应用程序

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Krunal Lathiya所有,未经许可,不得转载

资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载

上一篇 2024年 5月 31日
下一篇 2024年 5月 31日

相关推荐