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