This project is started in 2000 when the new venture established with partner and promoted the newly designed web-based system to local small and medium sized enterprises. The system has been upgraded many times and is still being used today after 20+ years.
The system has been upgraded over several major releases. The major changes are summarized below in reversed chronological order.
A list of interesting features were implemented.
- Automated email collection using Python with BeautifulSoup.
- Automated email cleansing using Python based on regular pattern matching, data correlation, email verification, domain checking, whois.
- Automatic demographical check by IP address, semantics analysis, alexa ranking analysis.
- Automatic mail frequency setting based on live bounce rate of server.
- Distributed and co-ordinated mailing campaign management.
- Supported Opendkim, DMARC and SPF on Postfix.
Due to the growing interest in China and Taiwan market, the Perl mailer was enhanced to support Unicode.
- Unicode message supported.
- Migrated to Ubuntu with Postfix.
- Migrated to Linode cloud platform.
Due to the cost of running campaigns on MailChimp and didn’t see significant benefit on using managed service, the Perl mailer was reverted to self-built Linux server. Enhanced management for more effective email marketing campaigns.
- Multi-campaigns with different weight and target.
- Client potential was defined and would be revised based on their response and reading times.
- Automatic event running round the clock or on schedule.
Due to the growing stringent control from ISP, self-built Linux server on dynamic broadband line became difficult to get through and Perl mailing was stopped and email campaigns moved to managed MailChimp platform. The running cost of MailChimp was metered cost so mail campaigns were run on selected and focus segment only.
Perl mailer was enhanced to provide more flexibility on mailing campaigns so reduce the chance of duplicated email content for different receipient.
- mail frequency.
- dynamic mail sender, title and content.
New function added to collect legitimated email addresses from websites continuously by browsing, new function also developed on verifying the email addresses in database.
- Perl email connector using Perl module LWP was developed to extract email addresses from websites.
- Perl data cleanser using regular pattern matching was developed and cron jobs were designed and set to clean data collected continuously.
From experience accumulated from running the email marketing campaigns, very few potential clients would respond on the first email received. It was required to read a few interesting mails before further discussion on products or services could be triggered. Therefore, focus on interesting potential clients sound significant value for more effective email campaigns. In that light, tracking function was added to the Perl mailer.
- Add codes inside email to embed a unqiue identifier inside email, when email being read, when client read the content from server, the reading record could be identified in database for follow-up.
- Unsubscribe link was provided for receipient and database update immediately.
Due to the growing concern of unsolicited email distribution and more stringent control by ISPs, emails generated from simple Windows emailer were blocked again and again that made the management of the email marketing campaign difficult to manage. Moreover, there was no tracking functions on the email campaign from off-shelf Windows software. Therefore, the first release of Perl-based email system was developed. The Perl script is designed to be automatic and intelligent that will adjust itself according to the running situation.
- Developed on self-built Fedora server using dynamic IP broadband.
- Using No-ip dynamic IP address with client on Fedora for regular and automated IP address update.
- Perl script using Mail module and DBD Mysql connector module.
- Email addresses kept in MySQL database.
An email collecting tool and emailer on Windows based were purchased and the mailer was running on Windows machine on ad hoc basis.
How can I handle unicode with Perl’s DBI?