Laravel - 发送电子邮件

简介

你好,未来的Laravel大师们!今天,我们将深入了解使用Laravel发送电子邮件的精彩世界。作为你友好的计算机科学老师,我将在这一旅程中一步步指导你。如果你之前从未编写过一行代码,也不用担心——我们将从最基础的内容开始,逐步学习。在本教程结束时,你将能够像专业人士一样发送电子邮件!

Laravel - Sending Email

Laravel是什么?

在我们开始发送电子邮件之前,让我们花点时间了解Laravel是什么。Laravel是一个强大的PHP框架,可以让网页开发变得轻松愉快。把它想象成一个装满了所有酷炫小工具的工具箱,你可以用它们构建出色的网站和网页应用程序。它就像是为网页开发准备的瑞士军刀!

为什么使用Laravel发送电子邮件?

你可能在想,“我们为什么需要从我们的网页应用程序中发送电子邮件?”想象一下,你正在运营一个在线商店。你会想要发送订单确认、运输更新,甚至可能是顾客的生日折扣。这就是Laravel的电子邮件功能派上用场的地方!

为电子邮件设置Laravel

步骤1:配置

首先,我们需要告诉Laravel如何发送电子邮件。打开你的.env文件(就像你的Laravel应用的秘密日记)并添加以下内容:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls

your_usernameyour_password替换为你的实际凭证。对于测试,我推荐使用Mailtrap——它就像一个电子邮件的沙盒!

步骤2:创建一个Mailable

现在,让我们创建我们的第一个Mailable。什么是Mailable,你问?它是你的电子邮件的蓝图。在终端中运行以下命令:

php artisan make:mail WelcomeMail

这将创建一个名为app/Mail/WelcomeMail.php的新文件。让我们打开它并添加一些内容:

<?php

namespace App\Mail;

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

class WelcomeMail extends Mailable
{
use Queueable, SerializesModels;

public function __construct()
{
//
}

public function build()
{
return $this->view('emails.welcome');
}
}

这告诉Laravel使用emails文件夹中的名为welcome的视图作为我们的电子邮件内容。

步骤3:创建电子邮件视图

让我们创建那个视图!在resources/views/emails/welcome.blade.php创建一个新文件并添加一些HTML:

<!DOCTYPE html>
<html>
<head>
<title>欢迎来到我们的应用!</title>
</head>
<body>
<h1>欢迎加入!</h1>
<p>我们非常激动地欢迎你的加入。准备好迎接一段惊人的旅程吧!</p>
</body>
</html>

发送你的第一封电子邮件

现在是激动人心的部分——真正发送电子邮件!让我们创建一个控制器来处理这个。运行:

php artisan make:controller MailController

打开新的控制器文件并添加以下方法:

<?php

namespace App\Http\Controllers;

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

class MailController extends Controller
{
public function sendWelcomeEmail()
{
Mail::to('[email protected]')->send(new WelcomeMail());
return '电子邮件发送成功!';
}
}

这个方法做了两件事:

  1. 它告诉Laravel将我们的WelcomeMail发送到'[email protected]'。
  2. 它返回一个成功消息。

测试你的电子邮件

为了测试这个,在routes/web.php文件中添加一个新的路由:

Route::get('/send-welcome-email', [MailController::class, 'sendWelcomeEmail']);

现在,当你访问浏览器中的/send-welcome-email时,它应该会触发电子邮件发送过程!

高级电子邮件功能

一旦你掌握了基础知识,Laravel为电子邮件提供了一些酷炫的高级功能:

功能 描述
附件 向你的电子邮件添加文件
队列 在后台发送电子邮件
Markdown 使用Markdown编写你的电子邮件
本地化 用不同的语言发送电子邮件

让我们看看如何添加一个附件:

public function build()
{
return $this->view('emails.welcome')
->attach(public_path('/files/terms.pdf'), [
'as' => 'terms.pdf',
'mime' => 'application/pdf',
]);
}

这会将一个PDF文件附加到你的电子邮件中。酷炫吧?

结论

恭喜你!你刚刚学会了如何使用Laravel发送电子邮件。记住,熟能生巧,所以不要害怕尝试不同的电子邮件设计和功能。谁知道呢?你可能会创造出下一个大热的电子邮件营销平台!

记住,在编程世界中,错误只是学习的机会。所以如果第一次没有成功,深呼吸,调试,再试一次。你可以做到的!

快乐编码,愿你的电子邮件总能到达目的地!

Credits: Image by storyset