Symfony 邮件教程显示了如何在 Symfony 中发送简单邮件。 Symfony 使用 SwiftMailer 发送电子邮件。
SwiftMailer
SwiftMailer
是免费的功能丰富的 PHP 邮件程序。 Symfony 通过其symfony/swiftmailer-bundle
集成了 SwiftMailer。
Symfony 发送邮件示例
在示例中,我们发送了一封简单的电子邮件。 我们使用 Twig 创建电子邮件模板。
建立应用
我们首先使用 composer 建立应用。
我们创建一个新的 Symfony 骨架项目,然后进入新创建的项目目录。
我们安装了 Web 应用所需的三个基本 Symfony 软件包。
我们安装symfony/swiftmailer-bundle
。
我们安装了用于开发的软件包:maker
和server
。
.env
在.env
文件中,设置MAILER_URL
变量。 它包含将要发送电子邮件的 SMTP 服务器。 如果您是初学者,请避免使用 Gmail,因为由于 Gmail 的高度安全性,因此正确设置 Gmail 是一项复杂的任务。
而是使用托管服务提供商提供的 SMTP 服务器或诸如 mailgun 或 mailtrap 之类的服务。 必需的选项(例如端口号和加密)由提供商/服务提供。
我们创建一个TestMailController
,其中包含一个用于发送电子邮件的简单链接。
src/Controller/TestMailController.php
在TestMailController's
index()
方法中,我们发送电子邮件。 请注意,发送电子邮件的代码不应在生产应用的控制器中。 它应该在某种服务。 但是出于简单原因,我们将其保留在此处。
我们注入Request
,Swift_Mailer
和记录器。
我们获取在 GET 请求中使用的名称。
创建了Swift_Message
。 from 和 to 电子邮件值经过硬编码,以简化此示例。 您可以删除硬编码的值作为练习。 (将源电子邮件设置为参数,从表单中获取目标电子邮件。)
使用setBody()
,我们设置电子邮件的正文。 renderView()
方法从提供的 Twig 模板渲染视图。 我们将$name
变量传递给模板。
电子邮件带有send()
发送。
我们登录&闪烁一条消息。 成功发送电子邮件后,将显示即显消息。
我们重定向到显示 Flash 消息的主页。
templates/emails/myemail.html.twig
这是电子邮件的简单模板。
我们创建一个HomeController
。 它包含一个用于发送电子邮件的简单链接。
src/Controller/HomeController.php
HomeController
呈现主页。
templates/home/index.html
主页包含用于发送电子邮件的链接。 如果发送了电子邮件,我们会显示一条通知。 单击此通知可以将其隐藏。
我们为通知设置了一些样式。 同样,hide
类提供了一个简单的淡出动画。 通过将此类插入通知元素,可以在 JavaScript 中启动动画。
此链接发出触发电子邮件的 GET 请求。 我们随请求发送一个name
属性。 名称是硬编码的; 作为练习,您可以创建一个表单,该表单将指定名称和目标电子邮件。
如果有即时消息,我们将其显示。
动画由位于main.js
文件中的 JavaScript 代码控制。
public/main.js
当我们单击 Flash 消息时,事件回调将hide
类添加到元素的类列表中,从而启动淡出动画。
templates/base.html.twig
这是基本的 Twig 模板。
您可能也对以下相关教程感兴趣: Symfony 简介, Symfony 服务教程, Symfony 请求教程, Symfony Flash 消息 , Symfony 表单教程, PHP 教程。