geekdevs / swift-mailer-extensions
SwiftMailer 扩展
2.0.1
2020-02-04 07:58 UTC
Requires
This package is auto-updated.
Last update: 2024-09-06 22:03:05 UTC
README
概述
本项目旨在扩展 SwiftMailer 的功能。
注意,现在主分支只支持 SwiftMailer v.6,且与早期版本不兼容。如果您仍然需要早期版本,请检查本包的 v.1
版本。
传输
文件传输
对于开发环境,通常希望防止发送实际邮件,而是将邮件存储到文件中进行测试。
FileTransport 正好可以做到这一点 - 它将邮件存储为 eml 格式,然后可以用大多数电子邮件应用程序打开(例如 Outlook 或 Thunderbird)。它接受事件分派器作为第一个参数,以及存储邮件文件的文件夹路径(您应该在该文件夹中有写权限)。
使用示例
// Initialize file transport
$eventDispatcher = new \Swift_Events_SimpleEventDispatcher()
$transport = new FileTransport($eventDispatcher, 'path/to/folder');
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('john@doe.com' => 'John Doe'))
->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
->setBody('Here is the message itself')
;
// Send the message
$result = $mailer->send($message);
连接到 Symfony
在 services.yml
中将 FileTransport 定义为服务
swiftmailer.mailer.transport.file:
class: Geekdevs\SwiftMailer\Transport\FileTransport
arguments:
- "@swiftmailer.mailer.default.transport.eventdispatcher"
- "%kernel.project_dir%/var/emails"
在 config.yml
文件中配置 SwiftMailer 以理解新的传输
swiftmailer:
transport: file
复制插件
复制插件非常有用,可以将所有发出的邮件 BCC 到特定地址(例如,如果您想监控发送的所有内容)。
连接到 Symfony
在 services.yml
中将 CopyPlugin 定义为服务
swiftmailer.mailer.plugin.copy:
class: Geekdevs\SwiftMailer\Plugin\CopyPlugin
arguments:
- "notifications@recipient.com"
tags:
- { name: "swiftmailer.default.plugin" }
注意标签 swiftmailer.primary.plugin
,其中 "default" 应该是您的邮件器名称。