wowo / wowo-newsletter-bundle
Symfony2 的新闻简报包(支持 beanstalkd 消息队列)
Requires
- doctrine/orm: >=2.2.3,<2.4-dev
- symfony/config: >=2.1.0
- symfony/console: >=2.1.0
- symfony/dependency-injection: >=2.1.0
- symfony/form: >=2.1.0
- symfony/framework-bundle: >=2.1.0
- symfony/http-kernel: >=2.1.0
- symfony/swiftmailer-bridge: >=2.1.0
- symfony/validator: >=2.1.0
- wowo/wowo-queue-bundle: 1.3.*
Requires (Dev)
- lapistano/proxy-object: dev-master
- mockery/mockery: 0.7.2
Suggests
- stfalcon/tinymce-bundle: master
This package is not auto-updated.
Last update: 2024-09-28 13:45:55 UTC
README
WowoNewsletterBundle 提供了一种简单的方式来发送大量丰富的 HTML 电子邮件。它使用 beanstalkd 队列代理来处理在发送之前要发送的邮件。包非常易于扩展 - 您可以提供自己的联系人来源或使用包含在包中的默认来源。
包含的功能
- 发送 HTML 电子邮件(包含嵌入式丰富内容)
- 可自定义的联系人来源
- 高性能(beanstalkd 每秒可以提供数千次操作)
- 可定制的消息 - 您可以定义尽可能多的占位符
- 可扩展性 - 您可以将 beanstalkd 队列和发送邮件的工作进程放置在您的应用程序主 Web 服务器之外
此包依赖于 WowoQueueBundle,它是 beanstalkd 消息系统的抽象层
安装
步骤 1:下载 WowoNewsletterBundle
composer 机制
将以下行添加到您的 composer.json
文件中的 "require"
定义中
"wowo/wowo-newsletter-bundle": "dev-master"
现在,运行 composer 脚本来下载包
$ php composer.phar install
deps 机制
将以下行添加到您的 deps
文件中
[WowoNewsletterBundle]
git=git://github.com/wowo/WowoNewsletterBundle.git
target=bundles/Wowo/NewsletterBundle
[WowoQueueBundle]
git=git://github.com/wowo/WowoQueueBundle.git
target=bundles/Wowo/QueueBundle
检查其他依赖项及其设置,并在 https://github.com/wowo/WowoQueueBundle 上运行 vendors 脚本来下载包
$ php bin/vendors install
步骤 2:配置自动加载器(如果您使用 composer,请跳过此步骤)
将 Wowo
命名空间添加到您的自动加载器中
<?php // app/autoload.php $loader->registerNamespaces(array( // ... 'Wowo' => __DIR__.'/../vendor/bundles', ));
步骤 3:启用包
最后,在内核中启用包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Wowo\NewsletterBundle\WowoNewsletterBundle(), ); }
步骤 4:运行 newsletter:send 工作进程
要完成邮件发送,您需要运行工作进程
$ php app/console newsletter:send
有可选的 --verbose
开关,它可以用作简单的 stdout 监视器
TinyMCE 集成
此包已准备好与 TinyMCE 一起使用。只需开启此包并添加一些配置(以下是一个示例)即可将正文字段转换为富文本编辑器。
stfalcon_tinymce: include_jquery: true theme: advanced: mode: "textareas" theme: "advanced" theme_advanced_buttons1: "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,link,unlink" theme_advanced_buttons2: "" theme_advanced_buttons3: "" theme_advanced_toolbar_location: "top"
配置
您可以在 services.xml 中设置大量参数。您还可以在 app/config/config.yml 中调整一些选项(映射和模板)
参数
- wowo_newsletter.queue(默认:newsletter_tube)- Beanstalkd 管道名称
- wowo_newsletter.default.sender_name(默认:Wojciech Sznapka)- 电子邮件消息中的 "from" 名称
- wowo_newsletter.default.sender_email(默认:wojciech@sznapka.pl)- 电子邮件消息中的 "from" 地址
- wowo_newsletter.form.can.choose.contacts.via.form(默认:true)- 决定是否可以通过表单选择联系人
- wowo_newsletter.form.has.delayed.sending(默认:true)- 决定表单是否允许延迟发送邮件(设置发送日期)
配置(config.yml)
示例
wowo_newsletter: placeholders: key1: value1 key2: value3 key3: value3 name: getName email: getEmail templates: 'template name': %kernel.root_dir%/Resources/mailing/mailing.html
在占位符中,您应该提供一个映射,其中键是占位符名称(例如:email)和值是联系人实体上的属性/获取器名称。有两个必填键:(email 和 name)。
通过模板,您可以设置 html 模板(包含相对于其目录的图像)源。默认情况下,它采用第一个位置(上面的 'template name'),并解析 HTML 模板和图像的文件系统路径。您可以添加自己的实现,以便用户可以从配置的模板中选择,甚至添加自己的模板(存储在数据库中)。
扩展和调整指南
您可以通过提供自己的联系人来源来扩展包。还有更多的扩展点,但这个可能是最可能用到的。
parameters: wowo_newsletter.contact_manager.class: Your\Bundle\NewsletterContactManager wowo_newsletter.model.contact.class: Your\Bundle\Entity\User wowo_newsletter: placeholders: firstname: getFirstname lastname: getLastname email: getEmail templates: 'main template': %kernel.root_dir%/Resources/templates/newsletter/mailing.html
在上面的例子中,用户 是一个现有的实体,它具有姓名、姓和电子邮件等字段。为此,我们编写了 NewsletterContactManager
,它实现了 Wowo\NewsletterBundle\Newsletter\Model\ContactManagerInterface
接口,并为该包提供了通过 Doctrine2 获取的联系人。