Search

A new extension, “Email Newsletters” is now available for download. Comments and feedback can be left here but if you discover any issues, please post it on GitHub!

I have uploaded the first Release Candidate of my Email Newsletters extension. This means that the feature set is closed for version 1.0. Currently there are no known bugs. Version 1.0 will be released after a two-week testing period. I invite every experienced developer to implement and break the software.

This extension is powerful. But in order to not sacrifice flexibility, some design decisions have been made which make things hard wrap your mind around. So:

  1. You should already have some experience in using the Symphony XSLT CMS.
  2. Please read and follow the documentation thoroughly before posting any bug reports or feature requests. You will definitely not be able to set this extension up without understanding the README file (and using the example configuration XML code provided there).

I tried to document everything as comprehensive as possible. Fedback is welcome.

In the coming weeks I will try and build a reference “Email Newsletters” ensemble, which should help to understand the implementation concept.

Finally!

The demo seen at Symphosium was really impressive, I’ll test it as soon as possible. Great job :)

Thank you!

I would love to hear some “code review” as well (because I more or less a noob in PHP…)

Congratulations!

Very cool Michael!

Fantastic, Michael! I saw the HTML to Email Text and figured the extension would be soon to follow. Thanks for your work on this. (I just had a request for this feature yesterday. So, in that respect, this is really good timing.)

Thank you all very much. I really wish that it will be as useful for you as it is for me.

(My clients have already sent many thousands of emails with this extension. While RC1 is a major rewrite, I still hope that everything will be fine. I implemented this release on three different websites/environments today, and the tests looked very promising.)

Maybe this extension is one possible way to say “thank you” to a fantastic community and to the team which gave us Symphony.

I have decided to change the implementation of a special feature: the ability to load pages with an ‘admin’ page type. This will unfortunately change the configuration’s XML structure, so if you can wait for some hours, please do so. RC2 will be relased soon.

Thanks Michael!

Email Newsletters updated to version 1.1RC2 on 29th of June 2010

Sorry for the mistake… Version 1.1 is still far away!

Email Newsletters updated to version 1.0RC2 on 29th of June 2010

RC2 is available. Please read on.

Early versions of the extension (pre RC1) removed the admin page type in the database, loaded the page and then re-added the admin page type. For RC1 I tried to implement a more “Symphony-like” approach, using auth-tokens for the URLs. But it turned out that this has a major disadvantage: Clicking on any preview link will log out the current author/developer and log him in as the auth-token user. This is distracting, and so it is by no means “Symphony-like”. Auth tokens are not made for this.

So I decided to switch back to the original solution, this time doing it much more consistent: Now I implemented this for any page (the recipients XML page, the HTML content page and the TEXT content page), because some people might want to protect content pages as well. (Not every email newsletter should be visible on the web at the same time, I guess). The implementation for content pages unfortunately required a major configuration XML change.

I changed both the recipients and the content pages configuration — please note the new element and attribute names in the example XML:

<email-newsletter>
    <live-mode>0</live-mode>
    <debug-info>1</debug-info>
    <subject-field-label>Title</subject-field-label>
    <senders>
        <item id="1" smtp-host="smtp.example.com" smtp-port="" smtp-username="newsletter@example.com" smtp-password="mysecretpassword" from-email="ted@example.com" from-name="Teddy" reply-to-email="management@example.com" reply-to-name="Teddy2" return-path="returningmails@example.com">Ted Tester</item>
        <item id="2" smtp-host="smtp.example.com" smtp-port="" smtp-username="we3mast3r" smtp-password="password!" from-email="webmaster@example.com" from-name="" reply-to-email="webby@example.com" reply-to-name="" return-path="">Example Webmaster</item>
    </senders>
    <recipients>
        <group id="1" page-id="141" url-appendix="" entry-node="entry" name-node="name" email-node="email" code-node="code">Clients</group>
        <group id="2" page-id="142" url-appendix="?region=usa" entry-node="partner" name-node="full-name" email-node="email" code-node="secret-code">Partners (USA)</group>
        <group id="3" page-id="142" url-appendix="?region=bavaria" entry-node="partner" name-node="full-name" email-node="email" code-node="secret-code">Partners (Bavaria)</group>
    </recipients>
    <content>
        <page-html page-id="151" url-appendix="{$id}/"/>
        <page-text page-id="152" url-appendix="{$id}/"/>
    </content>
    <search-strings>
        <item replacement-node="email-node">[[email]]</item>
        <item replacement-node="name-node">[[name]]</item>
        <item replacement-node="code-node">[[code]]</item>
    </search-strings>
    <throttling>
        <emails-per-time-period>50</emails-per-time-period>
        <time-period-in-seconds>30</time-period-in-seconds>
    </throttling>
</email-newsletter>

As you see, now every page is described by its ID and a “URL appendix”. The page path will be resolved by the extension. Setting the page type to ‘admin’ will no longer require any additional configuration (like auth-tokens to be appended to the URLs).

You will find additional explanations in the README’s chapter “Security Concerns”.

There have been changes to the field’s database structure which are not covered by the updater function. So if you have already set up RC1, plesase uninstall the field and the extension, then install RC2. (Make sure to have a copy of your XML configuration which can be adopted to RC2’s XML structure.) I am sorry for this inconvenience. I’ll do my best to provide better upgrade procedures from “final” 1.0 onward.

Code cleanup, bugfixes and other improvements have also taken place in this version.

A bit late, but still: Glückwunsch!

Thanks, Johanna!

Just a short question to all native speakers:

Do you say “recipients groups” or “recipient groups”?

I’d say “recipient groups”. The plural “recipients groups” makes it sound possessive, and it’d feel like there was a missing apostrophe “recipient’s”.

Thanks. So it will be “recipient groups”.

I introduced some bugfixes and removed the ZIP download from the extension page. Please use the GitHub repository at the moment. When 1.0 is considered stable, I will add a ZIP again.

Version 1.0RC3 is available on GitHub. Looks rather good to me at the moment.

Time to invite you to test it and give me some feedback! :-)

Email Newsletters updated to version 1.0RC3 on 5th of July 2010

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details