Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP

Derek Crosson
Derek Crosson
991 Points

Custom in-house email marketing platform on VPS?

Hey, everyone!

I want to write a custom email marketing platform and run it on a VPS (or a rack server if needed). The following is what I need:

  • Multiple static IP addresses on the server
  • A custom written application on the server (something like MailChimp) that can be used to send mail.

So here's what I'm thinking of doing...

Server stuff (will be running Linux, not sure which distro I'll use)

  1. Rent a VPS and setup static I.P. address (still deciding on specs. The server will be used to send large quantities of mail once the I.P. addresses are warmed and also to host the application that will be written to send the mail).

  2. Setup reverse DNS so that the I.P. address(es) return the server name when pinged. (would it make more sense to use a cluster of servers?)

  3. Install SPF and DKIM

  4. Install MTA (thinking of using Exim or QMail).

  5. Install and configure some sort of backup system

Software development

Write an API in Laravel to do the following:

  1. Check if email address(es) exist (smtp verify). This will avoid having hard bounces and increase sender reputation.

  2. Store contacts (with options to create custom fields and segments)

  3. Create campaigns (with options for A/B testing, dynamic content rules, personalisation, automation and reporting).

  4. User roles and authentication (will use Confide and Entrust).

  5. Integrate with custom CRM (this is not a problem).

These aren't all the software features. Just wondering if I've got the server setup idea correct or if there's a better way to improve it? Also, is it a good idea to write something like this in PHP and use Laravel as the framework (thinking of speed, reliability, etc)?

I know that I can use MailChimp, Amazon, SendGrid ,etc but I think that in the long run this will be a much better option for business needs and I am more than happy managing the server and maintaining the software.