During my website migration it became evident that I would also need a new email service. Previously the email hosting was integrated in the CPanel of my web hotel.

My choice was Polish EmailLabs for transactional email and mailbox.org for traditional email.

Does a small business need email?

I was thinking whether a one man company actually needs an email. After some pondering and talks with other entrepreneurs the final conclusion was clear.

Yes, I do need an email account.

Emails are so fundamental part of how internet communication works that there are no other valid alternatives. The standards are well established.

What is transactional email?

Traditional email is what humans use in daily business. Outlook, Gmail etc.

Transactional email could be described as email that are sent programmatically from an application. Here are common use cases for transactional email:

Use caseEmails per month on my site
Contact form to receiver and confirmation to sender6
Confirmation about succesful blog post comment4
Newsletters50
Registration confirmation0

Additionally some quote needs to be reserved for testing.

Combining traditional and transactional email

I just did not find a feasible service that would combine traditional and transactional email.

The only conculsion was to choose the services seprately.

Why I chose EmailLabs for transactional email

As you can see, my website needs to send at most a few hundred transactional email per month.

I was looking for low cost or free option. Would not make sense to pay tens of euros per month for such low volumes.

Another condition was server location in EU region due to GDPR constraints. I tried these EU options for transactional email:

Transactional email servicePriceConclusion
EmailLabs24 000 free / monthOnly one that checked all boxes.
sendinblue9 000 free / monthNo answer.
Tipimail10 000 free / monthNo answer.
MailGunStart from 35€ / monthToo expensive, no long term free quota.
inbox.eu12 € / yearNot transactional, API was only for admin purposes.

How does EmailLabs work?

EmailLabs and other transactional email services provide an HTTP API to send email. HTTP APIs are accessible by any programming tool and is much easier interface than email servers.

I had some issues with EmailLabs. The registration form did not work when I tried it first time. I contacted the competing services and did not get any answer from them. After some time I tried EmailLabs again and signed up succesfully.

They had some missing English translations and UI bugs, but the emails are working without hick ups.

[Ruutukaappaus]

During a few months I have successfully received multiple contact requests and blog comments through EmailLabs. I have configured automatic confirmations for all email senders. My partners also receive an automatic notification for contact requests that concern them.

After configuring everything and contacting EmailLabs a couple of time it has been smooth sailing. After all, the solution has earned me some real money!

Sending with EmailLabs in Python

You can use EmailLabs transactional email API from any programming language. You simply send an HTTP request to their server. The data such as recipient and email content needs to be in certain format. Also the API token is needed from EmailLabs console to authorize the sending.

My website backend is hosted on Google Cloud, but email sending can be tested also from laptop. Postman is a great alternative for manual testing.

Here you find the documentation to send emails through EmailLabs . Here is an example how to send an Email with EmailLabs in Python.

#Install first:
#pip install requests
import requests
import base64

#Main endpoint to send email
emaillabs_url = "https://api.emaillabs.net.pl/api/new_sendmail"

#App key and secret from EamilLabs console, example:
#1234abcd1234abcd1234abcd1234abcd1234abcd
#Paste as string when testing, but use environment variables in production 
app_key = os.environ['EMAILLABS_APP_KEY']
app_secret = os.environ['EMAILLABS_APP_SECRET']

#SMTP account name from EamilLabs console, example:
#1.user.smtp
smtp_account = os.environ['EMAILLABS_SMTP_ACCOUNT']

#Basic authentication data needs to be in specific format

basic_str = f"{app_key}:{app_secret}"
basic_bytes = base64.b64encode(basic_str) 
basic_auth = f"Basic {basic_bytes}"

headers = {
    "Authorization": basic_auth
}

data={
    "smtp_account": smtp_account, #From EmailLabs console
    "to": ["[email protected]"]
    "from": "[email protected]",
    "reply-to": "[email protected]",
    "from_name": "Sam Sender",
    "subject": "Hello",
    "html": "You have a new contact request!"
}

response = requests.post(emaillabs_url, headers=headers, data=data)

#Response code 200 is success
print(response.status_code)

#Response message
print(response.text)

mailbox.eu for traditional email

As mentioned, you still need a traditional mailbox aside of the transactional email. My choice was German mailbox.eu for 3€ / month per user. The plan even includes 5GB of cloud documents and video conference tools, which might become useful.

Google Gmail or Microsoft Outlook would have been simple choices. But I kinda wanted to rebel against the idea that the whole internet is dominated by a few tech giants. What I really needed was a service that focuses solely on email, might be a bit cheaper and embraces security and privacy.

I was considering also free email options, but having the custom domain felt more professional.

The criteria for me:

  • Operates in EU under GDPR
  • Provides mainly email inbox
  • Privacy and security focused
  • Multiple free aliases to create SaaS demo users
  • Custom domain
  • Catch-all email to capture emails to legacy addresses
  • Affordable (max 5€/month)

I was also interested about Latvain inbox.eu for 12€ / year, but their alias policy was too limiting.