Page 1 of 1

如何在 Laravel 中发送电子邮件:完整的 SMTP 和 API 指南

Posted: Tue Dec 03, 2024 3:47 am
by mstlucky4574
在本文中,我将向您展示如何使用 Mailtrap 逐步在 Laravel 中发送电子邮件,主要关注可传递性。

作为 Laravel 开发人员,您可能听说过 Mailtrap 在官方 Laravel 文档中被提及为专门的电子邮件测试解决方案。但是,该平台还提供电子邮件发送功能。

我将在本文中向您展示的流程和代码片段与 Laravel 9.x 及更高版本兼容。


发送电子邮件之前设置 Laravel 电子邮件服务
Laravel 有自己的电子邮件服务,可以通过本地或基于云的服务发送电子邮件。

例如,Laravel 和 Symfony Mailer 组合为用户提供了一系列驱动程序,他们可以使用这些驱动程序通过 SMTP、第三方电子邮件发送服务和 Sendmail MTA 发送电子邮件。

尽管从技术上来说您可以使用sendmail从您的 Web 应用程 电话数据 序发送电子邮件,但您的电子邮件可能会被标记为垃圾邮件。

您还可以使用日志驱动程序在 Laravel 中发送电子邮件,而无需外部 SMTP 或 API 服务,但它实际上不会发送您的电子邮件。相反,它会将所有电子邮件写入您的应用程序的文件中。

Laravel 电子邮件服务的其他显著特点包括:

排队电子邮件。
创建常规纯文本和 HTML 电子邮件消息。
附加不同格式和 MIME 类型的文件以及原始数据。
包括内联附件并将原始数据嵌入电子邮件模板。
在浏览器中预览消息。
Markdown 支持(在相当多的框架中)——创建漂亮的模板并轻松包含按钮、表格或面板。
模板系统——使用各种模板并配置视图。
本地化方法——为特定用户设置所需的语言。
本地开发邮件——防止将测试电子邮件发送到真实收件箱。
生成并编写邮件

在 Laravel 中,config.mail.php文件是我们用于设置电子邮件服务的主要工具。它有一个邮件程序部分,其中包含 Laravel 支持的每个主要邮件驱动程序/传输的示例配置条目。

默认情况下,Laravel 根据我们如何设置此文件来选择使用哪种服务。此设置允许我们为不同类型的电子邮件选择不同的电子邮件服务。

此外,Laravel 使用“可邮寄”类来表示不同的电子邮件类型。这些存储在app/Mail目录中,但您不会立即在项目中看到它。相反,它会在您创建第一个可邮寄类时生成。

为了创建可邮寄类,我使用了这个 Artisan 命令(包含在 Laravel 中):

php artisan make:mail MailableName
创建可邮寄类后,我能够查看内容并配置类本身。为此,我使用了下表中的方法:

Image

附件 返回附件数组。
发送方配置
现在,我们需要指定发件人或from 电子邮件地址和姓名。为此,我们可以:

专业提示:如果您计划在应用程序发送的所有电子邮件中使用全局地址,则应使用全局from地址。我发现这非常方便,因为它使我不必from 在每个可邮寄类中调用方法。最重要的是,它充当我的默认from 地址,因为我没有指定任何其他地址。

使用 SMTP 在 Laravel 中发送电子邮件
现在您已经配置了 Laravel 电子邮件服务,我将向您展示如何在您的应用程序/项目中将 Mailtrap 电子邮件发送设置为 SMTP 服务提供商,然后我将向您展示如何创建可邮寄类并运行测试。

步骤 1. 使用 Mailtrap SMTP 凭据与您的应用集成

我做的第一件事是将Mailtrap Email Sending提供的 SMTP 服务器凭据插入到我的 Web 应用程序的.env中。

为此,您只需创建一个 Mailtrap 帐户,登录并导航到发送域。在那里,您需要添加并验证您的域,这只需几秒钟。

如果您是视觉学习者,Mailtrap 有一个易于理解的视频适合您。


一旦您验证了您的域名,Mailtrap 将带您进入一个页面,您可以从该页面复制 SMTP 凭据并轻松将其粘贴到您的项目、应用程序或电子邮件发送服务中。


注意:在本章中我们将使用事务流,我将在本文后面向您展示如何使用批量流。

当您将 SMTP 邮件凭据集成到 Laravel 代码中后,其外观应如下所示:

一旦我插入凭据并从我的 Laravel 项目发送测试邮件,Mailtrap 就会验证我的 SMTP 设置。

如果您的测试电子邮件发送成功,您将收到以下回复:

“250 2.0.0 确定:排队为……”
然后,只需单击“验证设置”,即可启动验证过程。


步骤 3. 启用 Mailtrap 跟踪设置(可选)

现在,这一步是可选的,但我强烈推荐它,因为它允许我监控我的电子邮件性能。

也就是说,Mailtrap 为您提供深入的分析,通过它您可以关注您的打开、点击、退回等情况。