All Projects → wowo → Wowonewsletterbundle

wowo / Wowonewsletterbundle

Newsletter Bundle for Symfony2 (with messages queuing in beanstalkd)

Projects that are alternatives of or similar to Wowonewsletterbundle

Open2327romadapter
Open Hardware 2364-27xxx (E)EPROM Adapter PCB
Stars: ✭ 29 (-6.45%)
Mutual labels:  hacktoberfest
Whatpulse
WhatPulse reverse engineered
Stars: ✭ 30 (-3.23%)
Mutual labels:  hacktoberfest
Ssh Agent Helper
Use SSH keys from CMD, PowerShell, etc. on Windows
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest
Mvvm Redux
MVVM Redux is a lightweight lib to help you apply the redux concepts in your project based in MVVM.
Stars: ✭ 30 (-3.23%)
Mutual labels:  hacktoberfest
Dataframes.jl
In-memory tabular data in Julia
Stars: ✭ 951 (+2967.74%)
Mutual labels:  hacktoberfest
Todo list flask brython
um todo-list/kanban implementado com python fullstack
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest
Gatsby Storyblok Boilerplate
Gatsby starter template with Storyblok's headless cms and true preview
Stars: ✭ 30 (-3.23%)
Mutual labels:  hacktoberfest
Wire Desktop
💻 Wire for desktop
Stars: ✭ 961 (+3000%)
Mutual labels:  hacktoberfest
Vue Gh Corners
GitHub Corners for Vue.
Stars: ✭ 30 (-3.23%)
Mutual labels:  hacktoberfest
Calvin And Hobbes Quotes
🐯 Get Calvin and Hobbes quotes
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest
Place2live
Analysis of the characteristics of different countries
Stars: ✭ 30 (-3.23%)
Mutual labels:  hacktoberfest
Bedrock
Making mozilla.org awesome, one pebble at a time
Stars: ✭ 953 (+2974.19%)
Mutual labels:  hacktoberfest
Coc Powershell
PowerShellEditorService integration for coc.vim
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest
Community.sops
Simple and flexible tool for managing secrets
Stars: ✭ 30 (-3.23%)
Mutual labels:  hacktoberfest
Mod Pbxproj
A python module to manipulate XCode projects
Stars: ✭ 959 (+2993.55%)
Mutual labels:  hacktoberfest
App Tutorial
Tutorial app which is built in the tutorial
Stars: ✭ 29 (-6.45%)
Mutual labels:  hacktoberfest
Hacktoberfest2020
beginner-friendly project to help you in open-source contributions. Made specifically for contributions in HACKTOBERFEST 2020! Hello World Programs in any language and C and Cpp program , Please leave a star ⭐ to support this project! ✨
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest
Bonita Doc
This repository contains the sources of the Bonita documentation site. It uses Markdown to create the documentation content.
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest
App
The SimpleLogin back-end
Stars: ✭ 958 (+2990.32%)
Mutual labels:  hacktoberfest
Webui
The FlexGet Web UI
Stars: ✭ 31 (+0%)
Mutual labels:  hacktoberfest

WowoNewsletterBundle

Build Status

The WowoNewsletterBundle provides easy way to send huge amount of rich HTML e-mails. It uses beanstalkd queue broker to handle mails before they will be sent. Bundle is highy extendable - you can provide your own source of contacts or use default one, provided with bundle.

Features included:

  • Sending HTML e-mails (with embed rich content)
  • Customizable contacts source
  • High performance (beanstalkd offfers several thousand operations per second)
  • Personalizable messages - you can define as many placeholders as you wish
  • Scalable-ready - you can put beanstalkd queue and worker which sends mails away from your main application webserver

This bundle depends on WowoQueueBundle, which is abstraction layer for beanstalkd messaging system

Installation

Step 1: Download WowoNewsletterBundle

composer mechanism

Add following lines to your composer.json "require" definitions:

"wowo/wowo-newsletter-bundle": "dev-master"

Now, run the composer script to download the bundle:

$ php composer.phar install

deps mechanism

Add following lines to your deps file:

    [WowoNewsletterBundle]
        git=git://github.com/wowo/WowoNewsletterBundle.git
        target=bundles/Wowo/NewsletterBundle

    [WowoQueueBundle]
        git=git://github.com/wowo/WowoQueueBundle.git
        target=bundles/Wowo/QueueBundle

and after check for other dependences and its settings at https://github.com/wowo/WowoQueueBundle, run the vendors script to download the bundle:

$ php bin/vendors install

Step 2: Configure the Autoloader (skip it if you are using composer)

Add the Wowo namespace to your autoloader:

<?php
// app/autoload.php

$loader->registerNamespaces(array(
    // ...
        'Wowo' => __DIR__.'/../vendor/bundles',
        ));

Step 3: Enable the bundle

Finally, enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
        $bundles = array(
            // ...
            new Wowo\NewsletterBundle\WowoNewsletterBundle(),
        );
}

Step 4: run newsletter:send worker

Last thing you need to do, to achieve mailings sending is to run worker:

$ php app/console newsletter:send

There's optional switch --verbose which can be useful as a simple stdout monitor

TinyMCE integration

This bundle is TinyMCE-ready. Just turn on this bundle and add some config (example is below) and body field will transform into Rich Text editor.

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"

Configuration

You can set plenty of parameters, which can be found in services.xml. Also you can adjust some options in app/config/config.yml (mapping and templates)

Parameters:

  • wowo_newsletter.queue (default: newsletter_tube) - Beanstalkd tube name
  • wowo_newsletter.default.sender_name (default: Wojciech Sznapka) - "from" name in email messages
  • wowo_newsletter.default.sender_email (default: [email protected]) - "from" address in email messages
  • wowo_newsletter.form.can.choose.contacts.via.form (default: true) - determines if contacts can be choosen using form
  • wowo_newsletter.form.has.delayed.sending (default: true) - determines wheter form allows to delay mailing (setting send date)

Configuration (config.yml)

Example:

wowo_newsletter:
    placeholders:
        key1: value1
        key2: value3
        key3: value3
        name:       getName
        email:      getEmail
    templates:
        'template name': %kernel.root_dir%/Resources/mailing/mailing.html

In placeholders you should provide map, in which key is placeholder name (example: email) and value is property/getter name on contact entity. There are two obligatory keys: (email and name).

With templates you can set html templates (with images relative to its dir) source. By default it takes first position ('template name' in above) and resolves filesystem path for HTML template and images. You can add your own implementation, so user can choose from configured templates or even add his own (stored in database).

Extension and adjustments guidelines

You can extend bundle by providing your own contact source. There are more extension points, but this one is most probably to use.

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

In above example User is an existing Entity, which has fields firstname, lastname, email. For this purposes we wrote NewsletterContactManager which implements Wowo\NewsletterBundle\Newsletter\Model\ContactManagerInterface and provides bundle with contacts retrieved by Doctrine2.

tracking

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].