Linde Merkur

by Jens W. Klein last modified Feb 16, 2011 02:02 AM

A system to create high-grade personalized messages (ham/ spam) using a Plone content base for use in marketing, customer information etc.

Project Description

Linde Merkur

Why the name?

We, BlueDynamics Tyrol - Klein & Partner KEG, created this system for our customer Linde Verlag GmbH (Vienna/ Austria). So first part is customers name.

Merkur is the german way to write Mercury. Mercury is a god from Roman mythology. He was - beside other tasks - messanger of the gods to the human. Almost similar to Hermes in Greek mythology. Thats the second part.

What are the modules?

Overview

First its a good idea to open Poseidon CE and have a look at the UML-model. It shows you the structure.

LindeMerkur is the base-framework, LindeMerkurWizard is an example for customer-specific customization.

LindeMerkur needs LindeMerkurService. This is an application outside Zope. It has the job to get message by message and send them out. In future here bounce- detection will be done.

LindeMerkur closer

LindeMerkur consists of four major parts:

  1. EmissionsController
  2. Tool and Queues
  3. Service outside Zope (extra Software)
  4. Wizard (extra Product)

EmissionController

It is responsible to create the single e-mail. It brings it all together. So how does it work?

  1. create a EmissionController
  2. add one or more Userprovider, it is responsible to collect those users from somewhere in or outside Plone which will receive an e-mail if other factors matching.
  3. add one or more UserdataProvider, it is responsible to collect the relevant information about one single user.
  4. add one or more ContentProvider, it collects content based on the userdata further collected.
  5. add one Template. A template renders the collected data, adds headers or whatever is needed and results in a send-ready e-mail (just a remark: it's easy to adapt the system to send SMS, FAX (using PDF) or classical printed letters or provide VoiceXML, ...

Now the emission is prepared. Press the createQueue button and a Queue with light-weight object for every user fetched from UserProvider is created.

Tool and Queues

The Tool is a central anchor for LindeMerkurService. It provides methods to get Queues with unsend messages. It also contains its own catalog to make the whole fast.

A Queue is an object that contains thousands of light- weight objects with few information: A userid and a simple history with state (new, process, sent, failure) for statistical reasons and to have data to lock (and remove) dead receipients.

Service

This is a neat little application running as a daemon outside zope. It communicates with Zope using XMLRPC and look for Queues, get the message, try to send it (use a transport) and write back the state of the process using notify methods.

What is the state of the project?

We're in a beta state. All basic features are implemented, parts are a bit rough and security needs a better concept.

How to get involved?

Ask me, Jens Klein> or via IRC nickname jensens on freenode/OPN channels #plone, #eduplone

Authors (alphabetial order)

Herbert Gartner
concept, use-cases, tests (Linde Verlag GmbH)
Nils Haagen
concept, the wizard maker: model, code (Philter)
Markus Hahndl
concept, use-cases, more use-cases, user-interface wizard (Linde Verlag GmbH)
Jens Klein
concept, model, code, project management, releases, QA (Klein & Partner KEG)
Daniel Nouri
code (freelancer)

Licence and copyright.

This software is under the GNU General Public Licence 2 or later (GPL), except marked parts in source-code (copied from other sources).

Copyright (c) 2005 by Klein & Partner KEG, Innsbruck and Linde Verlag GmbH, Vienna, both Austria.

Current Release

No stable release available yet.

If you are interested in getting the source code of this project, you can get it from the Code repository .

All Releases

Version Released Description Compatibility Status

Comments (0)