Coding an Automated Email Platform
I wanted to send HTML emails without being super hacky
You might think this project is the definition of hacky, but what i mean by hacky is that I found some options where you could trick gmail or outlook to send your HTML email and that didn't sound reliable or scalable.
There are a lot of great platforms out there but you have to pay or are very limited in your capabilities. So I thought, how hard it could it be?
The truth? Not that hard.
Research
I did some preliminary research and found some promising options:
- Python's SMTPlib email library
- Command Line tools like Sendmail
- Create my own email server
- Mautic Open Source Marketing Automation
Python's SMTPlib email library
I avoid python like the plague. So I didn't pick this (Initially). I'm not a developer but like to learn and I think it's easy to get comfortable in Python because it has libraries for everything. You can do everything. But learning python doesn't teach me very much about computers which I think is more important to understand, and just because you can do everything in Python doesn't mean you should. I'm afraid to rely on Python too much and then hamstring my learning because I got too comfortable in Python.
Command Line tools like Sendmail
This is what I started to work with. I love most linux packages and tools that are scalable. They're very capable and usually the invisible foundation for a lot of programs we use.
Create my own email server
Every couple of years I do myself the disservice of trying to build an email server. Email is such an outdated and complicated technology that even if you set one up successfully you will always be fighting an uphill battle as far as deliverability goes. You will always get marked as spam if you're not a big reputable email service provider. I might try again someday but today is not that day.
Mautic Open Source Marketing Automation
I'm a huge Mautic fan. I love anything open source but this project is something else. The community is relatively small but extremely active and accepting. I always see myself as someone who is going to dedicate a lot of time and help out where i can with this community but I never do.
Despite me loving this project and having used it a lot, I wanted to do something smaller and simpler. This project is like setting up a Wordpress instance. It is very capable and allows for a lot. But part of this project is to help me learn and this would take away too much of that.
I Decided on the Sendmail command line tool
I started off by installing the required packages and updating the config files to send emails from my computer using a relay to my outlook account. This is where I basically, using the terminal aka command line, send an email through my outlook account and my outlook account handles the bulk of the server interactions. I set everything up like the documentation suggested and within a couple of minutes I was ready to send my first test email.
I kept getting that I wasn't authorized to send from my domain name.