SMPT2GO: Sending Emails from Weird Places

We have one of those giant, complicated copiers in our office. It can print booklets, fold papers, staple them, and just about make breakfast, lunch, and dinner too.

It can also scan a document and send it to an email address - a pretty handy feature common among most copiers now. I never thought too much about exactly how it sends those emails…until it stopped sending those emails.

After digging into the copier settings, I realized that it doesn't actually have its own mail server. Instead it uses credentials from someone else's mail server to send emails.

In our case, the password to the mailbox that the copier was using had changed and the copier could no longer authenticate the mailbox. It was a simple, but temporary fix. More on that soon.

It turns out that there are lots of devices and services that send emails this way - they're simply given access to an existing mail server and use it to send emails.

These devices often use the Simple Mail Transfer Protocol (SMTP) to send mail. SMTP is a way for email to be sent between systems, and it can be authenticated in lots of different ways. It can be as simple as a username and password, like in the case of our copier. But as authentication security has improved (out of necessity), these simpler methods of authentication are often no longer supported by certain devices and services.

How so?

I'll give you an example from our own experience.

We use Microsoft 365 Business for our staff email accounts. It used to be that Microsoft was totally fine (that might be a stretch) with connecting a copier via SMTP basic authentication (just a username and password) to a user's mailbox in order to send emails from the copier. However, a couple years ago, they decided that was no longer allowed and have since required a much more stringent type of authentication, one that our copier didn't support.

Thankfully, it turns out there are services designed to handle this exact situation. The one I chose was SMTP2GO. It's incredibly simple, solves the problem cleanly, and, at least for our volume of emails, is completely free.

How does SMTP2GO work?

In a nutshell, you connect your domain to SMTP2GO, then create one or more email addresses that you want to send from. Each one can be accessed by a client device via basic SMTP authentication. Connect your device to that email address in SMTP2GO, and you're done. It's that easy.

Let take a closer look at exactly how to set this up.

First, you'll need to create a free account with SMTP2GO. Then you'll need to add your domain as a "verified sender" in SMTP2GO. You'll be given a few CNAME records that will need to be added to your domain's DNS records. Specific instructions are dependent on your domain registrar. Just Google/Bing/DuckDuckGo "add DNS records to [your domain registrar]" to find details for your instance.

Once these records have been added and verified by SMTP2GO, you can start creating sending accounts, or "SMTP Users". Click the "SMTP Users" option under "Sending" in the menu on the left, then click the "Add SMTP User" button. The username will be the part of the email address to the left of the "@yourdomain.com". A randomized password will be generated for you, but you can change it if you'd like.

Note: You could use a single SMTP user to send emails from multiple devices and services, but there are a few reasons why you might be better off taking the time to create a unique user for each device or service.

First, using a unique user per device/service makes it easy to see what devices are sending emails from SMTP2GO. The "from" field on emails received from those devices can be set to match the username of the SMTP user, and getting an email from "[email protected]" tells you pretty clearly where it's from.

Most importantly though, if a bad actor gains access to one of your SMTP user's credentials, you can shut down a single sending email instead of your entire sending pipeline.

Another note: You do not need to have a corresponding mailbox in your email host (Microsoft, Google, etc.) for a sending address you create in SMTP2GO. Just note that if you don't have a mailbox for that sending address, then you won't be able to receive mail at that address. SMTP2GO is not a mailbox - it can only send email.

Once your user has been created, you can now connect that user to your sending device/service. For example, our copier has a section in its settings for configuring an SMTP connection. Use the information given by SMTP2GO (SMTP server, ports, and TLS/SSL) to connect to the SMTP User and now your device can send emails!

SMPT2Go offers a generous 1000 email limit per month on the free tier, which is far more than we need for our handful of uses.

How else can you use SMTP2Go?

Lots of self-hosted services require an SMTP server in order to send emails. We've found it helpful for:

Vaultwarden - to send user invites and password reminders
Activepieces - to send user invites and flow notifications
HVAC Automation - to send error and usage logs
NAS - to send notifications and logs

Have you used other devices or services that might be able to take advantage of SMTP2GO? If so, let me know in an email to [email protected].