Install Test And Configure Postfix Mail Server

Setting up Postfix is relatively simple, but can become difficult if you don’t have the correct configuration details. This guide will assume that you have everything sorted out with your MX values and A records. The following guide was tested using postfix-2.6.6-6.el6_5.x86_64 on a centOS server.

Install Postfix

First things first you need to install postfix and dovecot. You may have these applications already installed by default, if this is the case for you then you can skip this step. The command to install these can differ depending on the particular distro of linux you are using. Generally they follow a similar format. The yum command is used for CentOS, Red Hat or any other distro that uses the RPM Package Manager.

yum install postfix
yum remove sendmail

Configure Postfix

The config file (main.cf) for postfix is typically located at “/etc/postfix/main.cf”. Open up this file and either add or uncomment the following lines. Make sure to replace the redacted entries with the actual details of your server. If you don’t add the correct domain and IP address details you will encounter errors.

myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain
mynetworks = 127.0.0.0/8, [::1]/128, server-ipv4-address, [server-ipv6-address]
relay_domains =
home_mailbox = Maildir/
Test SMTP With Telnet

Telnet is a helpful tool that will allow you to test whether you have successfully set up your server. You will need to make sure you have your domains A records set up correctly in order for smtp.domain.com to be read as a valid address. You can use telnet to send an email to an external email address or a local address. It’s best to test by sending an email to Gmail or another external host. First start by running the telnet command on the smtp address. Note: I will insert the entire output of this process at the end.

telnet smtp.domain.com 25

If everything went ok you will get a message that looks something like the following. Note: the actual addresses may differ e.g. mail.domain.com depending on how you have configured the A records.

Connected to smtp.domain.com.
Escape character is '^]'.
220 mail.domain.com ESMTP Postfix

If everything is well then you can begin the process of sending the email.

mail from:[email protected]

This should return OK. Now you must create the email that you are going to send to the recipient email.

rcpt to:[email protected]

This should also return OK. If the rcpt command returns a “Relay Access Denied” error, you will find a potential solution at the end of the post. If you it went smoothly then you can create the email. Do this by entering the following lines of code 1 after another.

!!NOTE!!
The “.” at the end is important! You need to paste the full stop at the end of the message. When you enter the full stop and click enter it will inform you that it has added the message to the queue.

data

Subject:Test Email

From:[email protected]

Testing postfix

.

quit

The sent message will often show up in your spam box so be sure to check your spam folder before you get worried about it not working correctly.

[root@vps69576 ~]# telnet smtp.domain.com 25
Trying ...
Connected to smtp.domain.com.
Escape character is '^]'.
220 mail.domain.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
data
354 End data with .
Subject:Test Email From Teln^H^H^H
From:[email protected]
Testing email
.
250 2.0.0 Ok: queued as 73C82700F38
quit
221 2.0.0 Bye
Connection closed by foreign host.

Relay Access Denied Error

I came across this error and it took me a bit of messing around to figure out. Turns out to be quite a simple fix, but this may not always be the solution to this particular error. Hopefully it works for you.

This line will define where mail can be sent from.

"mynetworks = 127.0.0.0/8, [::1]/128, server-ipv4-address, [server-ipv6-address]"

Adding the correct addresses to this variable is important as you may end up getting a “Relay Access Denied” error when you attempt to send mail. You will need to add a few ip addresses to this variable. You will first need to add localhost which is 127.0.0.0/8, then you will need to add the ip addresse(s) of your server. It is best to add both ipv4 and ipv6 as I have ran into issues not having the ipv6 addresses. You must separate all addresses using a comma. ipv4 addresses are written down normally, but ipv6 addresses must be enclosed with square brackets [].

e.g. The following IP addresses apply to this domain

http://yomotherboard.com => 198.50.147.225, [2607:5300:100::3e0]

Related Articles

Related Questions

Why is my new gaming PC only getting 25 FPS in League of Legends?

I recently upgraded to a prebuilt PC featuring an Intel i5-14400F and an RTX 5070, which is a significant upgrade from my previous Ryzen...

Seeking Advice on Choosing OpenSuse for My New PC Build

I've been using Linux since 1993 and have stuck with it exclusively for the past two decades. While I've been using Fedora KDE on...

Considering a Move from Windows 10 to Linux: Need Some Advice!

Hey everyone! 👋 I've been using Windows for quite a while now and honestly, I'm not feeling the desire to upgrade to Windows 11....

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Latest Tools

Scavenger Hunt Team Randomizer

Planning a scavenger hunt and need to split participants into random teams? Whether you're organizing a school activity, a corporate team-building event, or a...

File Hash Generator Online – Get Instant MD5 and SHA-256 Hashes

Whether you are validating downloads, checking for corruption, or comparing files for duplicates, having a fast and secure way to generate file hashes is...

Visual CSS Editor for Modern Glass UI Effects

Modern UI design is all about clean, layered aesthetics, and few styles deliver this better than glassmorphism. If you're designing sleek user interfaces and...

Fast and Accurate Tap BPM Counter – Free Web Tool

Whether you're producing music, DJing live, or just figuring out the tempo of a song, knowing the BPM (beats per minute) can be critical....

Glassmorphism CSS Generator with Live Preview

Glassmorphism is one of the most visually striking design trends in modern UI. Its soft, frosted-glass effect adds depth and elegance to web interfaces,...

Add Custom Speech and Caption Boxes to Any Image Online

Creating comic-style images used to require complex design tools or specialist software. Whether you're making memes, teaching graphics, social media posts or lighthearted content,...

Latest Posts

Latest Questions