ניגי Nigi The IT manהאתר הטכנולוגי של ניגי

How to Install Mailcow Tutorial

21.07.2021

הקמה של שרת מייל אישי

Support us on Patreon: http://bit.ly/38mnveC Mailcow is by far the best self hosted email server. It is incredibly easy to install Mailcow as it is distributed as a docker container. @0xDEC0DE introduced it to me so thank you to him. It only takes 15 minutes to install and get all setup. In 15 minutes you can hook your website up with it's own email server. You want to use a separate email server because you cannot proxy your mail server behind Cloudflare. In order to hide your origin IP address you cannot use your web server as your email server. There are also several things you need to do to keep your server from getting blacklisted by spam blacklists which I will teach you. In this How to install Mailcow tutorial you will learn how to: - Install mailcow on an Ubuntu Digital Ocean droplet - Set it up using Let's Encrypt SSL - Cloudflare configuration - DNS configuration - SPF, DKIM & DMARC setup - How to add mailboxes - How to setup Xenforo to use your mailcow server - Xenforo bounced email handling & one click unsubscribes - SMTP, POP3 usage Discussion: http://bit.ly/2IWRm24 How to Install Mailcow Tutorial + Xenforo 2 - Self hosted email Donate on our Forum : http://bit.ly/2HkOco9 Support us on Patreon : http://bit.ly/38mnveC Follow us on Facebook : http://bit.ly/2vvHfhk Follow us on Twitter : http://bit.ly/3bC7J1i Follow us on Twitch : http://bit.ly/39ywOZ2 Follow us on Reddit : http://bit.ly/3bvOB57 Follow us on GitHub : http://bit.ly/2HoNXIS Follow us on Instagram : http://bit.ly/2SoDOlu https://guidedhacking.com

פחות פריטים

EMAIL MARKETING, SMTP SERVER

INSTALL AND CONFIGURE MAILCOW – BEST SELF HOSTED MAIL SERVER

Though there are several mailing solution for self hosted mail server, but installation and configuration can be headache some times. MailCow is fully feature loaded mailing script based on Dovecot, Postfix, SoGo and other open source software. It’s not easy to install, but also provides a modern web user interface for user and server administration.

MailCow is open source project which means you don’t have to spend a penny from your pocket for the software. To learn more about MailCow you can read their official documentation.

Requirement for MailCow Server

I will using Contabo for demonstration as they do not ban port 25. I have prepared list of VPS provider which gives you open port 25.

  • Recommended OS: Ubuntu 20.04

Initial DNS Setup

First of all you need to create few DNS records in order to start. They are as follows

TypeHostValue
AmailYour IP address
CNAMEautodiscovermail.yourdomain.com
CNAMEautoconfigmail.yourdomain.com
MX@mail.yourdomain.com 10

Installation of MailCow

Before, you can actually install mailcow, you need to install docker and docker compose needed by mailcow.

Installation of Docker

I already have discussed installation of Docker on Ubuntu. All, you need is to follow that article to install docker and docker-compose, which is will also help you understand docker.

Install MailCow

First of all set the hostname

1

root@mail:~# hostnamectl set-hostname mail.yourdomain.com

Then install git , just in case it’s not installed. Then change working directory to opt directory and pull MailCow files from github.

1

2

3

root@mail:~# apt install git -y

root@mail:~# cd /opt

root@mail:/opt# git clone https://github.com/mailcow/mailcow-dockerized

Now again change working directory.

1

root@mail:/opt# cd mailcow-dockerized

Finally execute the bin file and answer the question

1

2

3

4

5

6

7

8

9

10

11

12

root@mail:/opt/mailcow-dockerized# ./generate_config.sh

Press enter to confirm the detected value '[value]' where applicable or enter a custom value.

Mail server hostname (FQDN) - this is not your mail domain, but your mail servers hostname: mail.ingu.pw

Timezone [Etc/UTC]:

Generating snake-oil certificate...

Generating a RSA private key

...................................................................++++

...............................................................................................................................................................................................++++

writing new private key to 'data/assets/ssl-example/key.pem'

-----

Copying snake-oil certificate...

You can also make changes in configuration of you like

1

root@mail:/opt/mailcow-dockerized# nano mailcow.conf

Next, pull MailCow docker image

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

root@mail:/opt/mailcow-dockerized# docker-compose pull

Pulling unbound-mailcow   ... done

Pulling mysql-mailcow     ... done

Pulling redis-mailcow     ... done

Pulling clamd-mailcow     ... done

Pulling php-fpm-mailcow   ... done

Pulling sogo-mailcow      ... done

Pulling dovecot-mailcow   ... done

Pulling rspamd-mailcow    ... done

Pulling postfix-mailcow   ... done

Pulling memcached-mailcow ... done

Pulling nginx-mailcow     ... done

Pulling acme-mailcow      ... done

Pulling netfilter-mailcow ... done

Pulling watchdog-mailcow  ... done

Pulling dockerapi-mailcow ... done

Pulling solr-mailcow      ... done

Pulling olefy-mailcow     ... done

Pulling ejabberd-mailcow  ... done

Pulling ofelia-mailcow    ... done

Pulling ipv6nat-mailcow   ... done

Finally, run the compose.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

root@mail:/opt/mailcow-dockerized# docker-compose up -d

Creating network "mailcowdockerized_mailcow-network" with driver "bridge"

Creating volume "mailcowdockerized_vmail-vol-1" with default driver

Creating volume "mailcowdockerized_vmail-index-vol-1" with default driver

Creating volume "mailcowdockerized_mysql-vol-1" with default driver

Creating volume "mailcowdockerized_mysql-socket-vol-1" with default driver

Creating volume "mailcowdockerized_redis-vol-1" with default driver

Creating volume "mailcowdockerized_rspamd-vol-1" with default driver

Creating volume "mailcowdockerized_solr-vol-1" with default driver

Creating volume "mailcowdockerized_postfix-vol-1" with default driver

Creating volume "mailcowdockerized_crypt-vol-1" with default driver

Creating volume "mailcowdockerized_sogo-web-vol-1" with default driver

Creating volume "mailcowdockerized_sogo-userdata-backup-vol-1" with default driver

Creating volume "mailcowdockerized_xmpp-vol-1" with default driver

Creating volume "mailcowdockerized_xmpp-upload-vol-1" with default driver

Creating mailcowdockerized_sogo-mailcow_1      ... done

Creating mailcowdockerized_olefy-mailcow_1     ... done

Creating mailcowdockerized_memcached-mailcow_1 ... done

Creating mailcowdockerized_clamd-mailcow_1     ... done

Creating mailcowdockerized_unbound-mailcow_1   ... done

Creating mailcowdockerized_watchdog-mailcow_1  ... done

Creating mailcowdockerized_dockerapi-mailcow_1 ... done

Creating mailcowdockerized_solr-mailcow_1      ... done

Creating mailcowdockerized_ejabberd-mailcow_1  ... done

Creating mailcowdockerized_redis-mailcow_1     ... done

Creating mailcowdockerized_mysql-mailcow_1     ... done

Creating mailcowdockerized_php-fpm-mailcow_1   ... done

Creating mailcowdockerized_postfix-mailcow_1   ... done

Creating mailcowdockerized_dovecot-mailcow_1   ... done

Creating mailcowdockerized_nginx-mailcow_1     ... done

Creating mailcowdockerized_ofelia-mailcow_1    ... done

Creating mailcowdockerized_netfilter-mailcow_1 ... done

Creating mailcowdockerized_rspamd-mailcow_1    ... done

Creating mailcowdockerized_acme-mailcow_1      ... done

Creating mailcowdockerized_ipv6nat-mailcow_1   ... done

You might have to open port if firewall is running on your server. Run the following commands

1

root@mail:~# sudo ufw allow 25,80,443,110,143,465,587,993,995/tcp

Now go to browser and open https://mail.yourdomain.com with the default credentials admin + password moohoo.

mailcow-admin-login-window

Inside admin dashboard make sure to change the password.

mailcow-admin-dashboard

To add domain and user go to configuration in the top menu

mailcow-add-domain-mail-window

To access mailbox go to https://mail.yourdomain.com/sogo and enter username and password.

mailcow-webmail-login

Next screen will be something like this.

mailcow-webmail-dashboard

Final DNS Configuration

You also need to setup DKIM, DMARC and SPF record to finish the installation.

TypeHostValue
TXT@“v=spf1 mx a -all”
TXT_dmarc“v=DMARC1; p=reject; rua=mailto:mailauth-reports@example.org”
TXTdkim._domainkey“v=DKIM1; k=rsa; t=s; s=email; p=…”

To get the DKIM go to configuration>>domain>>edit as follows

add-dkim-mailcow

At the bottom of next page, you should find DKIM key. Copy it and paste it in DKIM TXT record.

dkim-key-mailcow-location

Conclusion

Installation of MailCow mail server is simple and with proper guidance any one can install it. In this tutorial, I have demonstrated all the steps and commands required to install MailCow.

MAY 12, 2021/0 COMMENTS/BY DHIRAJ RAHUL