任何 Web 应用程序最基本和最常规的功能都是向其用户、客户甚至员工发送有关任何内容的电子邮件,包括新闻通讯。
Laravel 提供了一个干净、简单的电子邮件 API 来向您的客户或用户发送电子邮件。
它提供了通过 SMTP、Mailgun、Postmark、Amazon SES 和 Sendmail 发送电子邮件的驱动程序,使我们能够通过本地或基于云的服务发送邮件来快速入门。
在本教程中,我将使用 SMTP 协议和名为“Mailtrap.io”的简单电子邮件测试客户端。
以下是在 Laravel 11 中发送电子邮件的分步指南:
第 1 步:在 mailtrap 上设置帐户
访问 https://mailtrap.io 并注册一个帐户:
注册后,你会看到类似这样的内容:
在上图中,点击“显示凭据”按钮,将显示 SMTP 和 POP3 协议的凭据,如下所示:
我将使用 SMTP 协议发送电子邮件。 因此,我们需要所有配置并将它们放入 Laravel 的 .env 文件中。
第 2 步:安装 Laravel 11
composer create-project --prefer-dist laravel/laravel emails
它将为我们安装全新的 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 从 Laravel 11 应用程序发送电子邮件的全部内容。
帖子浏览量:1 分享于:
克鲁纳尔·拉蒂亚
Krunal 在计算机科学领域拥有八年多的职业生涯,他的专业知识植根于坚实的实践经验基础,辅之以对知识的不断追求。
如何使用 Socialite 通过 Google 登录您的 Laravel 11 应用程序
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载