Install Postfix Mail Server on Ubuntu 22.04: Easy Setup
This comprehensive guide details How To Install Postfix Mail Server on Ubuntu 22.04. Postfix, a robust and versatile open-source Mail Transfer Agent (MTA), operates under the IBM Public License or Eclipse Public License. It’s compatible with various operating systems, including Linux distributions (Ubuntu, Debian, CentOS), BSD variants (FreeBSD), macOS, Solaris, HP-UX, and AIX.
Postfix provides both an SMTP server and client, enabling it to directly send and receive emails. It incorporates some spam protection features and can be integrated with other software like Amavisd-new, Dovecot, and Mailman for enhanced functionality.
The Postfix server operates in the background, managing tasks through components like a scheduler, local delivery agent, and address re-writer. The client side facilitates email sending for users.
Postfix is a common default MTA on systems like Ubuntu, CentOS, RedHat, Fedora, NetBSD, and macOS. This guide, brought to you by Orcacore, walks you through the process to Install Postfix Mail Server on Ubuntu 22.04.
To proceed with the Install Postfix Mail Server on Ubuntu 22.04 process, ensure you are logged into your Ubuntu 22.04 server as a non-root user with sudo privileges. Refer to Orcacore’s guide on "Initial Server Setup with Ubuntu 22.04" if needed.
1. Install Postfix Mail Server on Ubuntu 22.04
Postfix packages are readily available in the default Ubuntu repository. Begin by updating the system’s package list:
sudo apt update
Next, verify if another MTA is already installed on your server. Use the following command to check for services listening on port 25:
sudo netstat -ltnp | grep :25
If no MTA is currently installed, the command will return no results.
Now, install Postfix using the following command:
sudo apt install postfix
During the installation, you will be prompted to choose a general mail configuration type. Select "Internet Site" and press "OK" to Install Postfix Mail Server on Ubuntu 22.04 with the default settings.

You will then need to enter your Fully Qualified Domain Name (FQDN) as your mail domain name.

Once the installation completes, verify it with:
netstat -ltnp | grep :25
**Output**
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3382/master
tcp6 0 0 :::25 :::* LISTEN 3382/master
This confirms a successful Postfix installation. Note that Postfix is often referred to as "master" in netstat
results on port 25.
You can also examine mail logs, errors, and info to see Postfix in action:
# sudo cat /var/log/mail.log
# sudo cat /var/log/mail.errors
# sudo cat /var/log/mail.info
2. Configure Postfix on Ubuntu 22.04
Having completed the Install Postfix Mail Server on Ubuntu 22.04, you can further configure it by running:
sudo dpkg-reconfigure postfix
Select "Internet Site" as the mail server configuration type once again.

Enter your FQDN as your mail domain name again.

Specify the system administrator’s user account where all mail will be redirected, using the format "user@domain-name.com".

Enter all domains for which you want to receive emails, including the top-level domain.

Choose whether to allow forced synchronous updates. "NO" results in faster processing but carries a slightly higher risk of losing emails during crashes.

Configure the network blocks for relaying mail. The default values forward emails to the local host. This can be modified later or a third-party mail service can be used for relaying.

Accept or customize the mailbox size limit, local address extension character, and internet protocol selection.
Reload Postfix
Apply the changes by reloading the Postfix mail server:
sudo systemctl reload postfix
Postfix is now configured with your specified settings.
3. How To Test Postfix Installation
To test the localhost mail server, use telnet on port 25 to check the connection.
Note: Replace "localhost" with your domain name if applicable.
telnet localhost 25
**Output**
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 deb.orca ESMTP Postfix (Ubuntu)
A successful connection indicates the mail server is reachable.
To send a test email from another domain, stay connected via Telnet and run the following commands:
mail from <<user-name@sender-domain.com>>
Replace "user-name" and "sender-domain.com" with appropriate values.
rcpt to <<user-name>>
Replace "user-name" with the root username account of your mail server. Type "data" and press ENTER.
data
Enter the email data:
From: <user-name@sender-domain.com>
To: <user-name@receiver-domain.com>
Subject: Enter your email subject here
Enter the body of the email here and then press ENTER.
End the Telnet connection by typing "." and pressing ENTER, followed by "quit" and ENTER.
.
quit
Check the inbox to verify successful receipt of the test email. Use the "mail" command.
mail
For more information, refer to the Postfix Documentation.
Conclusion
This guide has detailed How To Install Postfix Mail Server on Ubuntu 22.04 and how to test its functionality.
You may also be interested in:
- How To Install PHP 8.2 on Ubuntu 22.04
- How To Install Python 3.11 on Ubuntu 22.04
- Introduction to Debian 13 Trixie
- Improvements of Linux kernel 6.14
- Remote Desktop Solutions for Linux
Alternative Solutions for Sending Emails on Ubuntu 22.04
While Postfix provides a complete MTA solution, alternative approaches exist for sending emails from an Ubuntu 22.04 server, especially when a full-fledged mail server is not required. Two such alternatives are:
1. Using ssmtp
for Simple Email Sending
ssmtp
is a lightweight MTA designed for sending emails to a mail hub. It’s significantly simpler to configure than Postfix and is suitable for sending system emails or notifications. It relays emails to an external SMTP server, such as Gmail or a corporate mail server.
-
Explanation:
ssmtp
avoids the complexity of handling incoming mail and managing a full mail queue. It focuses solely on sending emails via a pre-configured SMTP server. -
Installation:
sudo apt update sudo apt install ssmtp mailutils
-
Configuration: Edit the
/etc/ssmtp/ssmtp.conf
file. You will need to configure the SMTP server address, port, username, and password. Here’s an example configuration for sending emails via Gmail:root=yourusername@gmail.com mailhub=smtp.gmail.com:587 rewriteDomain=gmail.com hostname=yourdomain.com UseTLS=YES UseSTARTTLS=YES AuthUser=yourusername@gmail.com AuthPass=yourpassword
Replace
yourusername@gmail.com
,yourpassword
, andyourdomain.com
with your actual Gmail username, password, and domain name. You may need to enable "Less secure app access" in your Gmail account settings (or use an App Password) for this to work. Note that enabling "Less secure app access" is not recommended for security reasons and should only be used in controlled environments. Using an App Password is more secure. -
Sending an Email: You can now send emails using the
mail
command:echo "This is a test email sent via ssmtp." | mail -s "Test Email" recipient@example.com
2. Using a Transactional Email Service (e.g., SendGrid, Mailgun)
Transactional email services provide APIs for sending emails and handle the complexities of email delivery, including bounce management, spam filtering, and deliverability optimization. These services are ideal for applications that need to send a large volume of emails or require detailed email analytics.
- Explanation: Instead of managing an MTA on your server, you delegate the email sending to a specialized service. These services have sophisticated infrastructure and algorithms to ensure high deliverability.
-
Implementation (Example using SendGrid):
-
Sign up for a SendGrid account: Create an account on SendGrid’s website.
-
Obtain an API Key: Generate an API key in your SendGrid account settings.
-
Install the SendGrid Python library (if using Python):
pip install sendgrid
-
Send an Email using Python:
import sendgrid from sendgrid.helpers.mail import Mail, Email, To, Content SENDGRID_API_KEY = 'YOUR_SENDGRID_API_KEY' FROM_EMAIL = "your_email@example.com" TO_EMAIL = "recipient@example.com" SUBJECT = "Test Email from SendGrid" CONTENT = "This is a test email sent using SendGrid's API." sg = sendgrid.SendGridAPIClient(api_key=SENDGRID_API_KEY) from_email = Email(FROM_EMAIL) to_email = To(TO_EMAIL) subject = SUBJECT content = Content("text/plain", CONTENT) mail = Mail(from_email, to_email, subject, content) response = sg.client.mail.send.post(request_body=mail.get()) print(response.status_code) print(response.body) print(response.headers)
Replace
YOUR_SENDGRID_API_KEY
,your_email@example.com
, andrecipient@example.com
with your SendGrid API key, your sending email address, and the recipient’s email address, respectively.
-
Both ssmtp
and transactional email services offer simpler alternatives to Postfix for specific email sending needs, especially when a full-fledged mail server is unnecessary. Choose the solution that best aligns with your application’s requirements and technical expertise. These alternative solutions offer easier methods than fully installing and configuring Install Postfix Mail Server on Ubuntu 22.04.