Mailer Introduction
Contents |
What is the TegoNuke™ Mailer?
Quite simply put, the TegoNuke™ Mailer is a full featured replacement to the core RavenNuke™/PHP-Nuke email functions. However, why is it needed? Good question...
Why is the Mailer Needed?
The traditional RavenNuke™/PHP-Nuke Content Management System (CMS) was written back when the PHP mail() function was ubiquitous in its use and it was also quite easy to implement. These CMS' used the mail() function for key features like: user registration activation, user/admin notifications, Newsletter mailings, private message and forum emails and notifications, etc. Over time, as exploits against the PHP mail() across all PHP-based systems reached the "breaking point", Web Hosts began to lock down the use of the PHP mail() function in favor of authenticate SMTP. As soon as these lock downs began to occur, these fine scripts stopped working properly.
Several major scripts, such as phpBB, began to offer authenticate SMTP as options, but for PHP-Nuke especially, the author never added this as a core option. Hence, several different PHP-Nuke-base solutions were "born", PHPNukeMailer being one of the first well featured solutions.
Why a New Mailer Bundling?
PHPNukeMailer utilizes the PHPMailer set of libraries. At the time of original development and release of our Mailer, quite frankly, I liked the idea of PHPNukeMailer's administration applet but felt the Swift Mailer product was more robust and more actively developed than PHPMailer (no longer true as of this writing). Both are fine options and, in our opinion, options are good for the community. ;-)
In addition, I was seeing some really good features that I could begin to take advantage of in future HTML Newsletter versions so needed a distribution that I could have some measure of control over.
Features
As of this writing, the Mailer has these features:
- Able to configure to send mail via PHP's native mail() function, SMTP or sendmail.
- Able to use standard SMTP or authenticated SMTP as well as configure the port to use.
- Includes built-in support for SSL / TSL encryption as well as flexible connection ports.
- Since this comes using Swift Mailer, this has all the robust error checking, retries, etc features of that version.
- Supports "to", "cc" and "bcc" addresses.
- Supports a single email address or an associative array of addresses. Also supports addresses with both the email address and name format, such as: Montego <montego@montegoscripts.com>
- Supports Swift Mailer's batch send method (great for newsletters) where each recipient gets a separate email sent rather than everyone seeing everyone else's email addresses on the address line(s) (this also helps to reduce the likelihood of email getting caught by spam filters)
- Default character set of UTF-8
- Supports both "text/plain" and "text/html" type content types, with plans to also support multi-part in the future.
- Supports the setting of different message priorities (not currently used by any core scripts, but supports it).
- Able to configure a separate bounce email address (reply to).
- Configurable through an associative parameter array, making the addition of new capabilities very easy.
- Provides for several debugging modes where key debugging messages are provided back to only a logged in admin, plus an option to process everything up to but not including the final send().
- Includes extensive error trapping to avoid nasty PHP class and other errors.
- Automatic administration database table creation and upgrades (once created/updated, one can easily shut off the table check with one small script tweak).
Resource Requirements Needed
The Mailer was written on RavenNuke™ version 2.30.00 for RavenNuke™, but then tested also on PHP-Nuke 7.6. It should be easily adaptable to almost any well-patched 7.6+ PHP-Nuke system or closely related fork, such as NukePlatinum.
With the 1.1.0 version of the Mailer, it now requires PHP 5.2+ due to the underlying Swift Mailer requirements.