How to configure phpList to send HTML emails

Recently, I was working on setting up a mailing list for my music website. Rather than go with MailChimp, AWeber, etc. I decided to go the DIY open-source route and use phpList.

phpList is amazingly powerful. But it is also amazingly obtuse and confusing to configure. Documentation and the support community seem to be pretty good, but the confusing part is the nomenclature they use. So, first off let’s all get on the same page. By the way, before I get too far, I should mention that I am using phpList version 3.0.11. So if you are using an older version of phpList then things may be different for you.


When a subscriber signs up to your mailing list, phpList will automatically send them an email, asking to confirm. This is commonly referred to as double opt-in. phpList refers to this email message as a system message, rather than an email. There are other system messages as well – a welcome email (after the user has confirmed their email identity), an updated preferences email (after the user updates his/her info/details/preferences, and an unsubscribe email. Again, rather than call these things emails, phpList refers to them as system messages.

Ok, now that we’re all set with the nomenclature, let’s move on.

HTML vs Plain Text

By default, phpList will send all of these system messages as plain text. So by default, you are not able to include a logo, or big button that says “Yes subscribe me to this list”, etc. If you want to change this behavior, it’s pretty easy to do, but it’s not that obvious.

The first thing you need to do is to create a Default System Template. In phpList speak, Template = HTML. Creating this default template will enable the sending of emails as HTML instead of plain text. Think of it as a checkbox that turns HTML on or off: if the template exists, then HTML is used; if not, then plain text is used.

To create the Default System Template you must go to the following menu: Campaigns -> Manage Campaign Templates. I know, this is confusing, because we are not even dealing with sending out campaigns (i.e newsletters) yet. But this is where the setting lives. See photo below:


phpList campaign templatesClick on the button that says “Add default system template”. And that’s it! Once you do that, the system messages to your subscribers will now be sent as HTML.


Most likely you will want to customize the default system template. For example, add a logo, add a large button, etc. Here’s an example of how I changed my subscription email.

The old way, text-only:


Original text-only system message from phpList


The new way, HTML:


Customized system message using HTML


I love having that big button for the user to click, rather than a small text hyperlink!

I won’t walk you through all the steps involved here – that’s outside the scope of this post, and best left for another time. But basically, you need to edit your Subscribe Page (Config -> Subscribe pages). Put any customized HTML in that Subscribe Page, under the Transaction Messages section. You’ll see text boxes for each different message – that’s where you enter your HTML code. Unfortunately, there is no support for TinyMCE or FCKEditor yet, so you will have to do any coding manually. Hopefully that will change in a future release. See the pic below:



Subscribe page for customizing messages. You can use HTML in these text boxes.


Well, that’s it for now. Hopefully it’s a little clearer how to configure phpList to send HTML emails. Drop me a line and let me know if this helps, or if you have any questions.


  6 comments for “How to configure phpList to send HTML emails

Comments are closed.