Metzz Media
Email Marketing Platform, 2017
What ambitions a product or a service company may have? To be heard, to be cared about, to be known. What helps them to achieve all these is the use of email marketing. In this article, we share our secrets of making mailing a pleasant experience for both companies and email recipients that will result in efficient cooperation and mutual affection.
How it all began
At the end of 2017, we were contacted by the representatives of the company dealing with email marketing. They needed to create an infrastructure that would allow them to automate their business. Email marketing constitutes of sending emails, usually promotional ones, to recipients lists formed according to certain sample criteria. Normally, the lists are large and consist of millions of records. It makes the mass mailing more difficult, and the fact that many hosting platforms do not allow the use of their resources for this — interesting as well.
Functionality
Description
We had to create a system that would allow the sending of emails simultaneously from many servers to millions of recipients while keeping data and statistics centralized. Also, there had to be an ability to automatically install new dispatching servers and synchronize the data between the central database and external services.Technologies
Behind the project
The kernel of the system consists of two servers which are interconnected: on one server there are data in the MySQL database management system; on the other server there is Laravel-based software, which has an API to exchange and receive the data as well as an administrator's panel. Gearman, a special message queues software, was also installed as well as scripts for autodeploying of servers based on Ansible. Mailing services are built on Interspire software and Exim mail server.Technical issues
On the road
The system had been successfully developed and the company we were serving began to grow rapidly, so the scale of mail distribution expanded, too. Later on, it led to certain problems because the original version was not designed for such volumes. However, we coped with all the issues without any difficulties. All in all, the project presented us with many riveting and non-trivial tasks, such as distributed computing, parallel processing, mass data processing systems, the use of asynchronous queuing. It is well worth mentioning that taking into account this scale, optimality of scheduling requests and algorithms is of significant importance since the main target is to withstand as much load as possible and, as a result, to process more data.