Is it hard to send an email? From a user’s perspective, everything looks quite simple. Under the hood, however, there is a complex system that drives emails from the sender to the recipient.
When you click a button to send an email, your email client connects to the mail server. Servers are computers that handle specific services. An email server is meant for dealing with emails.
At the same time, we can break down email servers into two categories: outgoing and incoming. Today, we’re talking about a concept related to an outgoing mail server, known as an SMTP server.
What is an SMTP server?
An SMTP server is a computer or an app that is responsible for sending emails. It functions following the Simple Mail Transfer Protocol (SMTP). An SMTP server receives emails from the email client. Then it passes them on to another SMTP email server and relays them to the incoming mail server.
How does an SMTP server work?
Take a look at the basic steps of the email sending route and what role the SMTP server plays.
- A mail user agent (MUA), which can be your email client or an app, connects to the SMTP server of your domain (for example, smtp.mailtrap.io) to start the SMTP connection. This is called an SMTP handshake. The connection is carried out via an SMTP port, which is normally 25. However, other ports, such as 465, 587, 2525 could also be used in different cases. You can learn more about them in our blog post about SMTP ports. Once connected, the SMTP session begins.
- The client submits the sender’s and recipient’s email addresses, as well as the email body and attachments, to the server.
- The SMTP server, or more precisely the mail transfer agent (MTA), checks whether the domain name of the recipient and the sender is the same. If it is, the email goes directly to the recipient’s POP3 or IMAP server. If the domains are different, the SMTP server has to communicate with the Domain Name Server (DNS).
- The DNS provides the recipient’s IP address.
- The sender’s SMTP server connects to the recipient’s SMTP server and relays the email. If the recipient’s server is not available (down or busy), the email will be put into an SMTP queue. This is a buffer where the emails are stored before they hit the endpoint. For more on this, read our blog post about email queuing. Alternatively, the email can be dropped to a backup server.
- The recipient’s SMTP server verifies the incoming email. If the domain and user name have been recognized, the server forwards the email to the receiving servers, POP3 or IMAP server.
Is SMTP server secure?
Surprisingly enough, the SMTP server isn’t inherently secure. It doesn’t have any encryption or security mechanisms built into it. This makes it vulnerable to spoofing, spamming, or data leakage. To avoid all those unfortunate events, email providers have added security layers to the infrastructure.
The first mechanism they incorporated was the Secure Sockets Layer (SSL) but it had significant security flaws. As a result, Internet Engineering Task Force (IETF) deprecated its final version, SSL 3.0 in 2015 by enforcing RFC 7568.
4 years after SSL’s creation, another security standard, Transport Security Layer (TLS) was introduced to the public. Initially, it wasn’t perfect either, yet it was improved throughout the years. As of 2022, the TLS 1.3 version is considered to be the safest protocol for email encryption.
All of that is great, but at what point of the SMTP connection does TLS enter the game? By default, most email clients initiate a TLS connection during the handshake. They do so by using the SMTP command STARTTLS, which initiates the switch to an encrypted connection. To learn more, check out our blog post about SMTP security.
What is SMTP authentication?
SMTP authentication or SMTP AUTH is the mechanism used to secure the outgoing email server. It’s the service provided by the Extended Simple Mail Transfer Protocol (ESMTP) which adds new functionalities to the SMTP protocol, including authentication.
SMTP AUTH ‘‘demands’ that the sender is authorized to use the server to send emails. It makes it harder to impersonate real users, protecting them from spoofers and spammers.
SMTP AUTH leverages the SASL mechanism for authentication, which specifies the level of security and login methods. Mechanisms such as PLAIN, LOGIN, and CRAM-MD5 are commonly used in that process. To dive deeper into SMTP authentication, check out our dedicated guide.
Should you use local or cloud-based SMTP servers?
Your own SMTP server
Setting up your own SMTP server might be an option if you want to send bulk emails. It imposes no limit on how many emails you send per hour/day and ensures control of all your outgoing mail.
However, this comes with a drawback as the bounce rate can increase by 20-30%, which is a major consideration for the deliverability of transactional or email marketing campaigns. If you want to know all the ins and outs of setting up your own SMTP server, read this blog post.
3rd party email sending API
In our guide about the best free SMTP servers, we introduced a list of cloud-based 3-rd party email APIs that most startups and projects opt for. These are SMTP relay services that include Gmail, Amazon SES, Elastic Email, Mailtrap, and others.
The main benefit of using SMTP service providers instead of the local SMTP is that you don’t have to build and maintain the whole email infrastructure on your own. This means that you save your resources.
However, it’s important to pick out a reliable email provider such as Mailtrap Email API. It’s an end-to-end solution that can safely deliver email messages to the recipients’ inboxes.
It includes a bunch of useful features, such as actionable analytics, color-coded email categories, single-screen stats, webhooks, and dashboards. These can be used to track and control the deliverability of all your outbound emails.
What’s most important is that the Mailtrap Email API makes it dead easy to use SMTP services. Once you verify the domain with SPF, DKIM, and DMARC authentication protocols, you’ll immediately see SMTP credentials.
By configuring them in the server settings, you’ll be able to start using Email API to send messages from your domain. Mailtrap Email API’s SMTP server leverages PLAIN and LOGIN authentication mechanisms and requires STARTTLS encryption.
Now that you know what an SMTP server is and how it works, let’s dig deeper and answer the other questions you may have.
SMTP relay server or HTTP API – which one is better and when?
A mail user agent (the client) sends emails to the server via SMTP. It is a platform-agnostic protocol widely used for sending emails. At the same time, you can send emails from your app using a web-specific protocol – HTTP. In this case, there are no client-server or server-server back-and-forths. Your app sends HTTP requests to a third-party service that performs email sending. This way of mail delivery is known as HTTP API or Web API.
We can’t claim that Web APIs exceed the service of SMTP relay servers. Each option has its pros and cons.
Pick an SMTP server if:
- you prefer simplicity for basic tasks
- you need integrability with your CRM system or mail client
- you’re looking for a reliable and sustainable solution
Pick Web API if:
- you deal with bulk emails
- you need greater functionality
- you don’t mind tinkering with the code
For more about the differences between SMTP relay server and HTTP API, read our blog post.
What is an SMTP server address?
An SMTP server has a web address to communicate with other servers and clients on the Internet. Usually, it looks like smtp. or mail. plus the domain name. Here are some examples:
|Email service provider||SMTP settings and addresses|
|Microsoft 365 and Outlook||Server: smtp.office365.com|
|Gmail||Server: smtp.gmail.com |
Port: 587 or 465
Encryption: SSL, TLS or STARTTLS
|GMX||Server: mail.gmx.net |
Port: 587 or 465
Encryption: SSL or TLS
|iCloud Mail||Server: smtp.mail.me.com|
Encryption: SSL, TLS or STARTTLS
If you’ve set up your own SMTP server, you can use its IP address, for example, 192.0.2.0, instead of the web address.
Users of shared email services can find information about the SMTP server name and address by looking up the MX records of the domain.
Is an SMTP server and an SMTP relay the same?
SMTP relay is the process of transferring emails between SMTP servers (or MTAs if you will). A relay happens if the sender and the recipient come from different domains. In practice, however, the term SMTP relay often refers to SMTP servers that enable relaying. Email providers like Mailtrap Email API offer such relay servers for bulk email and transactional email sending. In this context, we can say that an SMTP server and an SMTP relay are the same things.
What is a fake SMTP server?
- A real SMTP server accepts emails from the client and sends them to the incoming mail server.
- A fake SMTP server accepts emails from the client and emulates sending without actual delivery.
Why would I need a fake one then? – For testing email sending, of course!
At a certain stage of your project, you’ll need to send a couple of test emails from your app or website. You can do this using a real SMTP server. In this case, you would have to tinker around with dummy email accounts a.k.a. create hundreds of email addresses that will disappear in a few hours.
If we’re being completely honest, dummy emails aren’t the best solution for testing. They require too many resources, have limited design testing capabilities, and contain the risk of spamming real users. That’s where a fake SMTP server comes into play!
In addition to Email API/SMTP Service, the Mailtrap Email Delivery Platform consists of Email Sandbox, a cloud-based testing solution that captures outgoing SMTP traffic.
With the Mailtrap Email Sandbox, the test emails you send from your app will be trapped using a fake SMTP server and put into a virtual inbox. You can be confident that none of the emails will get to your users. Unlike dummy emails, the Sandbox allows for QA automation and eliminates most of the manual labor.
Additionally, you can preview the content of the email templates, check them for spam and blacklists, and test HTML/CSS.
You may also consider setting up a local fake SMTP server like MailHog or MailCatcher or even a desktop app, for example, FakeSMTP or DevNull SMTP. We described the reasons to choose between cloud or local fake SMTP options in the dedicated blog post.
What is the difference between an SMTP server and an IMAP/POP3 server?
SMTP is an email sending protocol, whereas IMAP4 and POP3 are protocols for receiving emails. Therefore, an incoming mail server may use one of those protocols for email delivery. Here is how they work:
|IMAP workflow||POP3 workflow|
|The email client connects to the server|
The recipient can see the headers of all emails on the server
The email client downloads a chosen email on demand
|The email client connects to the server |
The email client retrieves emails
The server deletes the stored emails
The email client disconnects from the server
The main difference between these protocols is that IMAP servers always store copies of emails, while POP3 servers delete them once they are retrieved. For more on the differences between inbound and outgoing servers, check our IMAP vs POP3 vs SMTP blog post.
How does an MTA differ from an SMTP server?
It is common practice to use the term “mail transfer agent ” instead of “SMTP server”. But aren’t these notions different? An MTA is a software installed on the SMTP server. Generally, an MTA receives emails from an MUA and forwards them to:
- a mail delivery agent (MDA), if the sender and the recipient have the same domain, or
- another MTA (SMTP server)
In some cases, there could also be a mail submission agent (MSA) between the MUA and MTA. However, many MTAs carry out the MSA function, that’s why the mention of mail submission agents is often omitted. The most used MTAs are Postfix, Sendmail, and Exim.
So, if you call the SMTP server an MTA or even an MSA, this won’t be a mistake. The difference lies in the nomenclature you use.
SMTP server troubleshooting checklist
Let’s say you’ve checked the email sending of your app and it’s alright. We hope that the Mailtrap Email Delivery Platform helped you with that :). But when you started using a real SMTP server for sending emails, they were not delivered. The following checklist will help you detect what may be wrong:
- check the Internet connection
- check the SMTP server configuration (server name, port, username, password)
- try different SMTP ports
- test the SMTP server connection. For this, you can either use an online service like MXToolbox or perform a manual telnet session. Read our blog post about testing SMTP server to learn how to do this. You may also need to know SMTP commands and response codes for troubleshooting.
That’s everything we wanted to cover in this guide about SMTP servers. We’ve covered all the frequently asked questions, including what an SMTP server is, how it works, how it compares to other SMTP servers, and how to troubleshoot the errors. We also discussed 3-rd party SMTP relays and fake SMTP servers for testing.
To leverage the fake SMTP servers and then send emails through a cloud-based SMTP, we recommend using the Mailtrap Email Delivery Platform. It’s a single solution for all your SMTP needs.
For an in-depth look into the different aspects of the SMTP server, check out the blog posts we’ve recommended above.
If there are any other topics you’d like us to cover then let us know on Twitter.