GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal dan Mengonfigurasi Postfix di Ubuntu 18.04

Postfix adalah server email gratis yang awalnya dikembangkan sebagai alternatif, lebih sederhana dan lebih aman untuk sendmail. Tutorial ini akan menunjukkan kepada Anda cara mengatur server email postfix di server Ubuntu 18.04 Anda. Postfix memungkinkan Anda untuk mengelola pengguna virtual dan untuk itu, kami membuat grup virtual. Kami akan dengan mudah mengelola server email kami menggunakan postfixadmin untuk pengguna virtual dan dovecot untuk email masuk.

Apa yang perlu Anda pahami

Untuk menerima email, prasyaratnya adalah memiliki IP tetap, server DNS yang berjalan baik di server Anda sendiri atau ke penyedia hosting tempat Anda dapat memodifikasi rekaman. Mari kita definisikan beberapa akronim yang akan digunakan pada konfigurasi ini:

  • Postfix adalah Agen Transfer Surat (MTA ) digunakan untuk mengirim dan menerima email
  • Dovecot adalah Agen Pengiriman Lokal (LDA ) yang menggunakan server Internet Messaging Application Protocol (IMAP) dan Post Office Protocol (POP3).
  • SASL didefinisikan oleh Otentikasi Sederhana dan Lapisan Aman, ia menambahkan otentikasi antara pengguna dan server untuk mengamankan pertukaran.
  • Admin Postfix antarmuka web yang memungkinkan Anda mengelola kotak surat, domain virtual, dan alias
  • LEMP: server web dengan Nginx dan PHP untuk mengakses postfixadmin dan mengelola pengguna dan domain virtual dengan mudah, MySQL untuk menyimpan semua informasi.

Ada dua jenis domain di Postfix:

  • Domain lokal digunakan untuk mengirimkan email ke pengguna sistem yang terdaftar di /etc/passwd berkas.
  • Domain virtual yang tidak memerlukan akun sistem yang ada di /etc/passwd mengajukan. Ini menyediakan cara untuk menangani ribuan akun email dengan sangat mudah di sistem server email dengan menggunakan MySQL, PostgreSQL, atau LDAP untuk manajemen akun pengguna.

Langkah 1) Instal dan konfigurasikan Postfixadmin

Postfixadmin adalah modul web yang memungkinkan Anda memanipulasi domain virtual dan pengguna dalam database dengan mudah.

a) Unduh postfixadmin

Pertama, kita akan menginstal paket yang dibutuhkan

# apt install php-imap php-mbstring php7.2-imap php7.2-mbstring
Reading package lists... Done
Building dependency tree 
Reading state information... Done
...
...

Biasanya postfixadmin hadir di repositori default Ubuntu 18.04 tetapi ia akan mencoba menginstal Apache dan PostgreSQL alih-alih Nginx dan MySql. Jadi, untuk menjaga konfigurasi kami, kami akan mengunduh versi 3.2 terbaru yang sebenarnya dari sumber di proyek situs Github dan simpan di /opt map

# wget -P /opt https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
--2018-06-11 21:53:14--  https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found

Sekarang buka folder itu dan buka kompresinya.

# cd /opt && tar xvf postfixadmin-3.2.tar.gz

Sekarang kita harus mengganti namanya

# mv postfixadmin-postfixadmin-3.2/ postfixadmin

Postfixadmin menggunakan skrip yang disebut setup.php yang akan kita gunakan melalui web server pada saat instalasi. Pada postfix versi sebelumnya (3.1 dan terlama), skrip ini langsung berada di root folder Postfixadmin tetapi pada versi sebenarnya (3.2), skrip ini terdapat di subdirektori public dari folder postfixadmin. Biasanya kita harus memindahkan postfixadmin ke folder root server web Nginx kita, tetapi dengan versi baru ini, kita hanya akan membuat tautan simbolis dari folder publik yang berisi skrip, lalu ganti namanya untuk beberapa keamanan

# ln -s /opt/postfixadmin/public/ /var/www/html/pfa
root@li1002-235:~# ls -l /var/www/html/
total 4
-rw-r--r-- 1 root root 612 Jun 10 04:51 index.nginx-debian.html
lrwxrwxrwx 1 root root  25 Jun 12 04:01 pfa -> /opt/postfixadmin/public/

b) Buat database postfix

Sekarang kita harus terhubung ke database mysql untuk beberapa konfigurasi

# mysql -u root -p
Enter password:

Kemudian buat database dan pengguna

mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix-db-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

c) Konfigurasi postfixadmin

Sekarang setelah kita mengonfigurasi database, kita harus menunjukkannya ke postfixadmin sehingga ia dapat mengetahui di mana mendapatkan informasinya. Untuk melakukannya, buat /opt/postfixadmin/config.local.php file dan tambahkan konten di bawah

# vim /opt/postfixadmin/config.local.php

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix-db-password';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
?>

postfixadmin memerlukan izin untuk sub-folder bernama templates_c itu tidak ada. Jadi untuk menghindari beberapa kesalahan selama instalasi seperti di bawah ini,

Kita harus membuatnya secara manual dan memberikan www-data kepemilikan menggunakan perintah chown.

# mkdir /opt/postfixadmin/templates_c && chmod 755 -R /opt/postfixadmin/templates_c
# chown -R www-data:www-data /opt/postfixadmin/templates_c

Kemudian coba lagi, Anda akan melihat bahwa itu berfungsi sekarang dan memeriksa semua konfigurasi, menunjukkan versi php dan Ubuntu Anda

Sekarang kita harus membuat kata sandi untuk pengaturan dan menghasilkan hashnya

Sekarang ini akan memungkinkan Anda untuk membuat akun superadmin dan Anda akan menggunakan kata sandi pengaturan yang telah Anda buat. Tetapi untuk ini, Anda perlu mengedit /opt/postfixadmin/config.local.php file untuk menambahkan nilai hash kata sandi yang dihasilkan. Kemudian lanjutkan ke pembuatan akun superadmin

Sekarang Anda akan melihat bahwa akun telah ditambahkan.

Sekarang seperti yang Anda lihat, Anda dapat login ke postfixadmin dengan akun menggunakan link http://your-ip-or-domain/pfa

Jika halaman ini tidak dapat muncul, silakan periksa file log kesalahan nginx

# tail -n 20 -f /var/log/nginx/error.log

Dan pastikan untuk memiliki izin yang tepat pada /opt/postfixadmin/templates_c map. Anda dapat melihat deskripsi setiap menu saat Anda login.

d) Buat domain virtual, pengguna, dan alias

Sekarang kita akan membuat domain virtual, lalu pengguna. Domain adalah nama domain seperti mytuto.com . Anda dapat memiliki email di domain Anda menggunakan server yang sama. Saat Anda memulai, Anda tidak memiliki domain apa pun. Untuk menambahkan domain, buka Daftar Domain -> Domain Baru .

Kemudian masukkan informasi tentang domain. Anda dapat membatasi jumlah alias dan kotak surat. Ingatlah untuk menambahkan data MX. Setelah selesai memilih nilai Anda, tambahkan domain.

Sekarang setelah domain virtual kami dibuat, Anda dapat melihat di daftar Domain

Kami sekarang dapat membuat pengguna virtual kami. Untuk melakukannya, buka Daftar Virtual -> Tambahkan kotak surat .

Kita juga bisa membuat alias. Ini adalah alamat email yang akan mengarahkan email ke akun lain. Biasanya setiap server email harus memiliki alamat email penyalahgunaan , sehingga kita bisa misalnya melaporkan spam dari sebuah domain. Jadi buat saja alias penyalahgunaan dari domain Anda ke pengguna yang baru saja Anda buat tadi. Untuk melakukannya, buka Daftar Virtual -> Tambahkan Alias .

Anda dapat membuat semua parameter virtual tersebut di akhir tetapi ini akan membantu kami dalam langkah selanjutnya untuk konfigurasi postfix.

Langkah 2) Instal dan konfigurasikan postfix

a) Instal postfix

Sekarang kita dapat menginstal paket postfix.

# apt install postfix postfix-mysql sasl2-bin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  db-util db5.3-util libmysqlclient20 ssl-cert
Suggested packages:
  procmail postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb
...
...

Anda harus menjawab dua pertanyaan tentang jenis surat dan nama server surat Anda. Pastikan untuk mengganti hostname dan domain nilai dengan milik Anda

  • jenis konfigurasi email:Situs Internet
  • nama email sistem:hostname.domain.com

Pastikan sasl berjalan saat startup dengan mengedit file konfigurasinya

# vim /etc/default/saslauthd

# Should saslauthd run automatically on startup? (default: no)
START=yes

Sekarang restart layanan

# systemctl restart saslauthd

Saat kami mengkonfigurasi server email dengan pengguna virtual, kami membutuhkan pemilik semua kotak surat sehingga akan membuat pengguna sistem yang akan digunakan oleh semua pengguna virtual untuk mengakses email di server. Pertama, buat pemilik grup dan folder yang akan menyimpan kotak surat.

# groupadd -g 5000 vmail && mkdir -p /var/mail/vmail

Sekarang buat pemiliknya

# useradd -u 5000 vmail -g vmail -s /usr/sbin/nologin -d /var/mail/vmail

Pastikan untuk memberikan izin direktori surat kepada pemiliknya sehingga pemilik dapat menyimpan surat-surat tersebut ke dalam direktori yang sesuai.

# chown -R vmail:vmail /var/mail/vmail

Jika Anda tidak melakukannya, dovecot tidak akan dapat membuat folder yang diperlukan untuk menyimpan email.

b) Buat file konfigurasi untuk database

Sekarang buat folder yang akan berisi beberapa file database

# mkdir -p /etc/postfix/sql

Postfix membutuhkan 03 file database yang memungkinkannya untuk mengakses database yang telah kita buat sebelumnya:

  • Domain berisi daftar nama domain yang dihosting di server. itu akan memungkinkan postfix untuk menentukan apakah server kami bertanggung jawab atas domain (mytuto.com) ketika menerima email ([email protected]) di atasnya. Jika demikian, berarti domain tersebut ada di database kami.
# vim /etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Kami akan mengaktifkan konfigurasi dan menambahkannya secara otomatis ke /etc/postfix/main.cf file dan muat ulang konfigurasi postfix untuk menghindari keharusan melakukannya secara manual. Jadi file akan diperbarui setiap kali Anda menggunakan perintah ini dengan nilai baru.

# postconf -e virtual_mailbox_domains=mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf

Sekarang kita dapat memeriksa konfigurasi. Kami akan menjalankan perintah yang akan mengeksekusi kueri yang terdapat dalam file untuk mencari domain di database kami. Sebuah elemen (domain yang dicari) harus dikembalikan atau tidak ada jika domain tidak ada.

# postmap -q mytuto.com mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
mytuto.com

Seperti yang Anda lihat, postfix dapat mengambil domain yang tersimpan di database kami

  • Kotak Surat untuk menyimpan semua alamat email virtual. Ini akan digunakan untuk memverifikasi juga apakah kotak surat ada
# vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

Sekarang mari kita perbarui file konfigurasi

# postconf -e virtual_mailbox_maps=mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf

Jalankan perintah untuk menguji kueri pada database

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
mytuto.com/alain/
  • Alias untuk memuat alias email yang berbeda.
# vim /etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Sekarang tambahkan konfigurasi

# postconf -e virtual_alias_maps=mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf

Sekarang jalankan perintah untuk menguji kueri. Ini adalah pengguna tujuan ([email protected]) yang harus ditampilkan dan bukan alamat penyalahgunaan. Ini menunjukkan bahwa postfix dapat melakukan pencocokan.

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
[email protected]

Pastikan bahwa file tersebut tidak dapat dibaca oleh pengguna biasa karena kata sandi disimpan dengan jelas.

# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root root 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root root 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root root 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

Agar postfix dapat membaca file tersebut, kita dapat mengubah pemilik grup menjadi postfix

# chgrp postfix /etc/postfix/sql/mysql_*.cf
# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root postfix 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root postfix 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root postfix 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

c) Konfigurasi postfix

Sekarang kita akan mengedit file konfigurasi utama postfix secara manual. Jadi, buat salinan sebelum mengedit

# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

Sekarang kita akan mengaktifkan SASL untuk memaksa otentikasi untuk mengirim email dan menyerahkan otentikasi ke Dovecot. Pastikan untuk menambahkan baris di bawah

# vim /etc/postfix/main.cf

# Allow authenticated users to send email, and use Dovecot to authenticate them. Tells Postfix to use Dovecot for authentication
smtpd_sasl_type = dovecot
## Path to the Postfix auth socket
smtpd_sasl_path = private/auth
## Tells Postfix to let people send email if they've authenticated to the server.
## Otherwise they can only send if they're logged in (SSH)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Enable authentication only for those with a TLS connection.
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
# Tells Postfix who can send email: SASL-authenticated users connecting from a network specified in 'mynetworks'
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

Sekarang mari kita edit /etc/postfix/master.cf berkas konfigurasi. Ini adalah file konfigurasi proses. Kami akan mengaktifkan port SMTP yang aman dengan menambahkan atau menghapus komentar pada baris di bawah ini dan membuat salinan sebelum

# cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
# vim /etc/postfix/master.cf
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Sekarang Anda dapat menjalankan postconf -n perintah untuk memeriksa beberapa kesalahan

# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
...
...

Jika Anda tidak memiliki pesan peringatan, itu berarti file Anda tidak mengandung kesalahan. Sekarang Anda dapat memulai kembali layanan postfix

# systemctl restart postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2018-06-13 10:16:02 UTC; 27s ago
  Process: 12225 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 12225 (code=exited, status=0/SUCCESS)

Langkah 3) Instal dan konfigurasikan Dovecot

Sekarang setelah Postfix terinstal dan dikonfigurasi, kita perlu menginstal postfix untuk mengelola protokol pop dan imap, yang memungkinkan kita memulihkan email.

a) Pemasangan Dovecot

Paket Dovecot hadir di repositori default Ubuntu 18.04. Kami akan menginstalnya dengan dukungan mysql. Kami akan memasang ayakan yang berguna karena secara otomatis akan memasukkan surat ke dalam folder yang sesuai. Artinya, untuk setiap domain, ia akan membuat folder terkait yang berisi folder pengguna virtual yang sesuai untuk menyimpan file emailnya.

# apt install dovecot-imapd dovecot-mysql dovecot-managesieved
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dovecot-core dovecot-sieve libexttextcat-2.0-0 libexttextcat-data
Suggested packages:
...
...

Pahami itu, jika Anda tidak ingin menggunakan ayakan , untuk setiap domain, Anda mungkin perlu membuat folder terkait secara manual untuk menyimpan emailnya dan ini tidak mudah jika Anda memiliki banyak domain.

b) Konfigurasi dovecot

Konfigurasi Dovecot dimasukkan ke dalam beberapa file di /etc/dovecot/conf.d . Pertama, periksa konten /etc/dovecot/dovecot.conf agar baris ini tidak dikomentari

!include_try /usr/share/dovecot/protocols.d/*.protocol
!include conf.d/*.conf

Sekarang masuk ke folder yang berisi file konfigurasi

# cd /etc/dovecot/conf.d

Kami akan mengedit:

  • 10-auth.conf file untuk mengubah mekanisme koneksi dengan menambahkan atau menghapus komentar pada baris. Dovecot menggunakan pengguna sistem secara default tetapi kami menggunakan pengguna Mysql
# cp 10-auth.conf 10-auth.conf.bak
# vim 10-auth.conf

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext
  • auth-sql.conf.ext file untuk konfigurasi sql
# cp auth-sql.conf.ext auth-sql.conf.ext.bak
# vim auth-sql.conf.ext

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vmail/%d/%n
}
  • sekarang mari kita edit /etc/dovecot/dovecot-sql.conf.ext untuk memberi tahu dovecot cara menyambung ke database SQL
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bak
# vim /etc/dovecot/dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix-db-password
password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';
default_pass_scheme = MD5-CRYPT
  • Sekarang kita akan mengedit 10-mail.conf file untuk mengonfigurasi direktori lokasi email
# cp 10-mail.conf 10-mail.conf.bak
# vim 10-mail.conf
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir
mail_privileged_group = mail
  • Sekarang kita akan mengedit 10-master.conf file untuk koneksi ke soket.
# cp 10-master.conf 10-master.conf.bak
# vim 10-master.conf

service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  user = dovecot
}
  • Sekarang kita perlu mengkonfigurasi LDA 15-lda.conf file untuk menunjukkan saringan untuk mengatur email secara otomatis ke dalam folder yang sesuai
# cp 15-lda.conf 15-lda.conf.bak
# vim 15-lda.conf

protocol lda {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

Kita harus memberikan izin jika kita ingin agar pengguna vmail dapat meluncurkan dovecot

# chgrp vmail /etc/dovecot/dovecot.conf

Sekarang Anda dapat memulai kembali layanan dovecot

# systemctl restart dovecot

Anda dapat memeriksa log email untuk menemukan kesalahan

# tail -n 20 -f /var/log/mail.log

c) Integrasikan dovecot ke postfix

Sekarang kita telah mengonfigurasi dovecot, kita harus menunjukkan postfix untuk bekerja dengan dovecot. Edit file konfigurasi master postfix dan tambahkan baris di bawah ini di akhir file

# vim /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

Sekarang edit file konfigurasi postfix utama

 # vim /etc/postfix/main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Kemudian restart postfix

# systemctl restart postfix

Anda dapat memeriksa log email untuk menemukan kesalahan

# tail -n 20 -f /var/log/mail.log
Jun 14 08:10:00 myserver postfix/postfix-script[28361]: starting the Postfix mail system
Jun 14 08:10:00 myserver postfix/master[28363]: daemon started -- version 3.3.0, configuration /etc/postfix

Anda dapat melihat bahwa semua konfigurasi baik. sekarang kita perlu melakukan beberapa tes

Langkah 4) Uji server email

Untuk pengujian di baris perintah, kita perlu menginstal paket mailutils sebelum mengirim email

# apt install mailutils
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libntlm0 libpython2.7 libpython2.7-minimal libpython2.7-stdlib
 mailutils-common
...
...

Sekarang kita perlu mengirim beberapa email dan memeriksa apakah folder yang sesuai dengan domain dan pengguna dibuat secara efektif. Untuk itu, pertama-tama kita akan mengirim email ke pengguna kita saat ini yang dibuat di postfixadmin selama konfigurasinya

# echo "Hello Alain" | mail -s "test mail" [email protected]

Pertama, mari kita periksa log email

 # tail -n 20 -f /var/log/mail.log

Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: from=<[email protected]>, size=384, nrcpt=1 (queue active)
Jun 14 08:17:04 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:17:04 myserver postfix/pipe[28406]: 1715240BF9: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: removed

Kita dapat melihat bahwa surat telah terkirim dengan sukses. Sekarang mari kita periksa apakah folder yang sesuai telah dibuat

# ls -R /var/mail/vmail/
/var/mail/vmail/:
mytuto.com

/var/mail/vmail/mytuto.com:
alain

/var/mail/vmail/mytuto.com/alain:
Maildir

/var/mail/vmail/mytuto.com/alain/Maildir:
cur  dovecot.index.cache  dovecot.index.log  dovecot-uidlist  dovecot-uidvalidity  dovecot-uidvalidity.5b222480  new  tmp

/var/mail/vmail/mytuto.com/alain/Maildir/cur:

/var/mail/vmail/mytuto.com/alain/Maildir/new:
'1528964224.M129536P28407.myserver,S=455,W=467'

/var/mail/vmail/mytuto.com/alain/Maildir/tmp:

Anda dapat melihat bahwa folder secara otomatis hadir. Untuk tampilan yang lebih baik, mari kita coba dengan pohon perintah. Instal dulu

 apt install tree

Sekarang mari kita lihat folder email dengan tampilan yang lebih baik

# tree /var/mail/vmail/
/var/mail/vmail/
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

6 directories, 6 files

Sekarang Anda dapat melihat dengan sempurna. Kita dapat melakukan pengujian lain dengan membuat domain dan pengguna virtual baru di postfixadmin. Mari buat domain virtual example.com

dan pengguna virtual [email protected]

Sekarang mari kita mengirim email ke pengguna virtual baru

# echo "Hello Francois" | mail -s "test config" [email protected]

Sekarang periksa log email

# tail -n 20 -f /var/log/mail.log

Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: from=<[email protected]>, size=393, nrcpt=1 (queue active)
Jun 14 08:35:10 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:35:10 myserver postfix/pipe[28481]: CE43F40C5E: to=<[email protected]>, relay=dovecot, delay=0.06, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: removed

Sekarang verifikasi pohon folder

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   └── 1528965310.M888145P28482.myserver,S=468,W=480
│           └── tmp
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

Anda dapat melihat bahwa kami memiliki dua sub-direktori dengan domain mytuto.com dan contoh.com yang file untuk setiap pengguna virtual dari domain yang berbeda. Sekarang mari kita lakukan tes terakhir, pengguna virtual akan bertukar email

# echo "Hello Francois, it's Alain" | mail -s "Subject" -aFrom:alain\<[email protected]\> [email protected]

Periksa log email

# tail -n 20 -f /var/log/mail.log

Jun 14 23:15:01 myserver postfix/pickup[28373]: 8558240BDA: uid=0 from=<[email protected]>
Jun 14 23:15:01 myserver postfix/cleanup[28595]: 8558240BDA: message-id=<[email protected]>
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: from=<[email protected]>, size=398, nrcpt=1 (queue active)
Jun 14 23:15:01 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 23:15:01 myserver postfix/pipe[28597]: 8558240BDA: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: removed

Kita sekarang dapat melihat folder surat

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   ├── 1528965310.M888145P28482.myserver,S=468,W=480
│           │   └── 1528966081.M582572P28598.myserver,S=455,W=467
...
...

Anda dapat melihat bahwa folder baru sekarang berisi dua file. Kita bisa membuka file yang berisi surat

# cat /var/mail/vmail/example.com/francois/Maildir/new/1528966081.M582572P28598.hostname\,S\=455\,W\=467 
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: by myserver.domain.com (Postfix, from userid 0)
        id 8558240BDA; Thu, 14 Jun 2018 23:15:01 +0000 (UTC)
Subject: Subject
From: alain<[email protected]>
To: <[email protected]>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <[email protected]>
Date: Thu, 14 Jun 2018 23:15:01 +0000 (UTC)

Hello Francois, it's Alain

Anda dapat melihat konten yang menunjukkan bahwa itu juga berfungsi.

Kesimpulan

Anda tahu cara mengkonfigurasi sistem email yang berfungsi penuh dengan Postfix, Dovecot, dan Postfixadmin dengan Nginx. Yang paling penting adalah memberikan izin yang tepat untuk tidak menghadapi masalah. Anda harus memperhatikan bahwa Anda dapat menggunakan dovecot dengan protokol lain alih-alih LDA. Lain kali kami akan menunjukkan cara menginstal RoundCube sehingga pengguna virtual dapat memiliki antarmuka web untuk membaca email mereka dengan mudah dan kami akan mengintegrasikan PhpMyAdmin untuk memanipulasi database dengan mudah. Jangan ragu untuk mengirimkan komentar Anda kepada kami untuk menyempurnakan tutorial ini.

Baca juga:

  • Cara Menyetel Server Email Postfix di Ubuntu 16.04 (Dovecot - MySQL)
  • How to Configure Postfix with Webmail on Ubuntu 18.04
  • How to Setup Greylisting Service on Postfix Mail Server
  • How to Setup Postfix Mail Server with DKIM
  • How to Setup Mail Server Using Postfix, MariaDB, Dovecot and Roundcube

Ubuntu
  1. Cara Menginstal dan Mengkonfigurasi Server VPN Algo di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  3. Cara Menginstal Dan Mengkonfigurasi Server Redis Di Ubuntu

  1. Cara menginstal dan mengkonfigurasi Proxy Squid di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi Postfix di Ubuntu 20.04

  3. Cara Menginstal dan mengkonfigurasi server web Apache di Ubuntu 13.10

  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  3. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04