Install & Configure PowerMTA on CentOS with IP rotation

install-configure-powermta-centos-8

Installing & configuring PowerMTA could be a daunting task for beginners. However, if you are in digital marketing especially email marketing you would be tempted to try PowerMTA once in a life. Therefore, I have came up with the simplest way to install PowerMTA step by step on CentOS 7/8.

Beginning

First of all, PowerMTA can be installed standalone as well as along with some control panels like VestaCP, CyberPanel, cPanel, Virtualmin/Webmin, CentOS Web Panel, Froxlor, etc. In another article, I already have discussed the installation of VestaCP. If you want to install PowerMTA on VestaCP you can follow it.

In this article, I will be talking about standalone installation. Let’s Begin.

Requirement for PowerMTA

  1. VPS or cloud or dedicated server with at least 2GB of RAM (recommended minimum 8GB). I am using Contabo in this demonstration. Install CentOS on the cloud.
    Best and cheap VPS for email marketing
  2. A domain name. I prefer to buy domain names from Namecheap, Godaddy.
  3. PowerMTA rpm file and license. You can get it from Sparkpost.

Environment Setup

First of all, you need to install a couple of software to connect/upload files to the server.

Connecting to server

If you are windows then you will need a SSH client to connect to server. A simple and easy SSH client is putty

Open the putty and paste the IP address of your server

enter-ip-putty

Enter the username, it could be root or anything else provided by your hosting.

Now enter the password. In order to paste anything on putty, use the right click of the mouse.

enter-username-password-in-putty

Note that password won’t be displayed, therefore you don’t have to right click again and again, just click once.

Checking port accessibilty

Nowadays most of the cloud service providers sell cloud/VPS with port 25 blocked. Unless port 25 is open emailing wouldn’t be possible from your server. Therefore, it’s a good idea to check if outgoing traffic is permitted on port 25.

Install telnet with following command

yum install telnet -y
telnet smtp.gmail.com 25

The output will be something like this

If you are not getting above result, this means port 25 is blocked for outgoing traffic or, in other words, your hosting provider has blocked port 25. You may want to request them to open port 25.

To exit the above command windows type

quit

followed by enter.

VPS Setup

First of all you need to install CentOS 7/8 on VPS or cloud, which I already did on Contabo. If your hosting is different then make sure to select CentOS 7/8, when placing order.

Let’s update the CentOS

yum update -y

After the update finishes off, set up the hostname as follows

hostnamectl set-hostname mail.yourdomain.com

Don’t forget to replace yourdomain.com with your domain name. After that check, whether hostname is updated or not.

hostname

You will see the output of hostname the following

Domain Setup

Now we will set up the domain. Login to your domain registrar and create A record. Also, make sure you have MX record for your domain. If not then create one.

TypeNameValue
AmailYour IP ADDRESS
MX@mail.yourdomain.com

In the MX record set the priority to 10.

Uploading the PowerMTA

Now it’s time to upload the rpm package and license to your cloud/VPS. For this purpose, you will need an FTP client like FileZilla or WinSCP.

After the upload, follow the next section for installation.

Installation and Configuration of PowerMTA

Now we have the rpm package on the server. Let’s check the content of current directory to make sure uploaded file exist in it.

ls -l

Now, after verification, it’s time to install PowerMTA.

rpm -ivh PowerMTA.rpm

Don’t forget to replace PowerMTA.rpm with your rpm package name.

Next step is to copy the license file to the /etc/pmta directory.

After this step it’s time to configure pmta so download the config file here.

Next, we are going to make changes in the configuration file on the PC itself. Open it in notepad or notepad++.

Replace the IP address and domain name.

Also, update the SMTP details to make them unique.

Now, before sending out first email, you need to create following DNS records.

  • SPF record :
v=spf1 a mx a:yourdomain.com ip4:44.91.76.19 ~all
  • DMARC record: For _dmarc.yourdomain.com
v=DMARC1; p=none
  • rDNS record: To create rDNS record login to hosting and look for your server IP.
  • DKIM record: Creating DKIM records is a little complicated. It’s been discussed in a separate article.

Testing of SMTP

Now after hard work, it’s time to test the server. Go to https://smtper.net and fill in the details as follows. Also, check out 10 tools to check the efficacy of your SMTP server.

SMTP Hostmail.yourdomain.com
SMTP port2525
Use autheticationYes
Loginadminuser
PasswordadminPassWord
Email Fromtest@yourdomain.com
Email totestuser@gmail.com

Let’s open Gmail to check whether an email has been delivered or not.

Voila! We successfully installed and configured PowerMTA.

Let me know in comment if you have any question. I will be happy to answer.

37 replies
  1. kamrul
    kamrul says:

    he bro can u assist me to add dkim record…I previously added dkim record properly..but now it’s not working

    Reply
  2. marshall
    marshall says:

    This man lectures are the reason I know some certain things that are very useful in email marketing today and I wish him more knowledge and wisdom.

    Reply
  3. Irene
    Irene says:

    Trying to install PowerMTA and running into this error. I have searched Google for hours trying to find a solution but have come up empty handed. Do you know how to fix this?

    error opening /var/run/pmta.pid: Error opening /var/run/pmta.pid: file not found, status = ENOENT

    Reply
  4. manikandan
    manikandan says:

    Hello Bro
    can you please explain about how to install postfix in losthost and also i need to know how to access that postfix by web console. by installation with php and sql server please help me

    Reply
  5. Sayan Roy
    Sayan Roy says:

    Hi,
    Thank you for the article. I have installed powerMTA using this article, but I would like to use 587 port instead of 25. Can you please guide how to achieve that?

    Reply
  6. y
    y says:

    mv: cannot move ‘oempro432’ to ‘/var/www/html/oem’: No such file or directory
    chmod: cannot access ‘/var/www/html/oem/*’: No such file or directory
    error reading information on service httpd: No such file or directory
    error reading information on service mysqld: No such file or directory
    install.sh: line 66: /etc/init.d/iptables: No such file or directory
    error reading information on service iptables: No such file or directory
    install.sh: line 68: /etc/init.d/httpd: No such file or directory
    install.sh: line 69: /etc/init.d/mysqld: No such file or directory
    install.sh: line 77: /etc/init.d/crond: No such file or directory
    install.sh: line 78: /etc/init.d/mysqld: No such file or directory
    Redirecting to /bin/systemctl restart pmtahttp.service
    Failed to restart pmtahttp.service: Unit pmtahttp.service not found.

    Reply
  7. big
    big says:

    Starting pmta (via systemctl): Job for pmta.service failed because the control process exited with error code. See “systemctl status pmta.service” and “journal ctl -xe” for details.
    [FAILED]

    mine kept failing

    Reply
  8. someone
    someone says:

    can you please help me about that error
    PowerMTA5.rpm is for architecture amd64 ; the package cannot be built on this system
    im trying to install it on oracle instance with
    Canonical-Ubuntu-20.04-aarch64-2022.08.15
    can you please suggest any version of powermta working great with that version of ubunto or any help please

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *