Versi sebelumnya dari tutorial ini ditulis oleh Justin Ellingwood
Postfix adalah Agen Transfer Surat (MTA) sumber terbuka populer yang dapat digunakan untuk mengirimkan surel sesuai rutenya pada sistem Linux. Diperkirakan bahwa sekitar 25% dari server surel publik di Internet menggunakan Postfix.
Dalam panduan ini, Anda akan mempelajari cara menginstal dan mengonfigurasi Postfix pada server Ubuntu 20.04. Lalu, Anda akan menguji apakah Postfix dapat mengirim surat dengan menginstal s-nail
, suatu Agen Pengguna Surat (MUA), yang juga dikenal sebagai klien surel.
Harap diperhatikan bahwa tujuan dari tutorial ini adalah untuk membantu Anda menjadikan Postfix aktif dan berjalan secara cepat dengan hanya sebagian fungsi dasar surel. Anda tidak akan memiliki server surel yang penuh fitur pada akhir panduan ini, tetapi Anda akan memiliki sebagian dari komponen mendasar dari penyiapan untuk membantu Anda memulai.
Untuk mengikuti panduan ini, Anda akan membutuhkan yang berikut:
sudo
dan firewall yang terkonfigurasi dengan UFW. Anda dapat mengikuti panduan penyiapan server awal Ubuntu 20.04 untuk menyiapkan ini.Harap diperhatikan bahwa tutorial ini mengasumsikan bahwa Anda sedang mengonfigurasi hos yang memiliki FQDN dari mail.example.com
. Ketika dibutuhkan, pastikan agar mengubah example.com
atau mail.example.com
untuk mencerminkan FQDN milik Anda.
Postfix disertakan dalam repositori asali Ubuntu, sehingga Anda dapat menginstalnya dengan APT.
Pertama-tama, perbarui cache paket apt
lokal Anda:
- sudo apt update
Lalu, instal paket postfix
dengan perintah berikut. Perhatikan bahwa di sini kita memasukkan variabel lingkungan DEBIAN_PRIORITY=low
ke dalam perintah instalasi ini. Ini akan menyebabkan proses instalasi meminta Anda untuk mengonfigurasi beberapa opsi tambahan:
- sudo DEBIAN_PRIORITY=low apt install postfix
Proses instalasi ini akan membuka serangkaian prompt interaktif. Untuk tutorial ini, gunakan informasi berikut untuk mengisi prompt Anda:
mail.example.com
. Anda mungkin akan ingin mengatur nama surel sistem menjadi example.com
, lalu jika kita anggap nama penggunanya adalah user1
, maka Postfix akan menggunakan alamat user1@example.com
.root@
dan postmaster@
. Gunakan akun primer Anda untuk ini. Dalam kasus contoh ini, sammy.0
untuk menonaktifkan pembatasan ukuran apa pun.+
akan bekerja untuk tutorial ini.Untuk lebih jelasnya, ini adalah pengaturan yang digunakan dalam panduan ini:
example.com
(bukan mail.example.com
)$myhostname, example.com, mail.example.com, localhost.example.com, localhost
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
0
+
Catatan: Jika Anda perlu kembali untuk mengubah pengaturan ini, Anda dapat melakukannya dengan mengetik:
- sudo dpkg-reconfigure postfix
Prompt akan terisi dengan respons sebelumnya dari Anda.
Ketika proses instalasi selesai, Anda siap untuk membuat beberapa pembaruan ke konfigurasi Postfix Anda.
Sekarang, Anda dapat menyesuaikan beberapa pengaturan yang tidak ditanyakan oleh proses instalasi paket. Banyak pengaturan konfigurasi Postfix didefinisikan di dalam berkas /etc/postfix/main.cf
. Alih-alih mengedit berkas ini secara langsung, Anda dapat menggunakan perintah postconf
dari Postfix untuk melakukan kueri atau menetapkan pengaturan konfigurasi.
Pertama-tama, tentukan lokasi untuk kotak surat pengguna Ubuntu non-root Anda. Dalam panduan ini, kita akan menggunakan format Maildir, yang memisahkan pesan-pesan ke dalam berkas individual yang kemudian dipindahkan di antara berbagai direktori berdasarkan tindakan pengguna. Opsi alternatif yang tidak dibahas di dalam panduan ini adalah format mbox, yang menyimpan semua pesan di dalam satu berkas tunggal.
Atur variabel home_mailbox
ke Maildir/
. Nanti, Anda akan menciptakan struktur direktori di bawah nama itu di dalam direktori rumah pengguna Anda. Konfigurasikan home_mailbox
dengan mengetik:
- sudo postconf -e 'home_mailbox= Maildir/'
Selanjutnya, atur lokasi dari tabel virtual_alias_maps
, yang memetakan akun surel arbitrer ke akun sistem Linux. Jalankan perintah berikut, yang memetakan lokasi tabel ke suatu berkas basis data hash yang bernama /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Karena kini Anda sudah mengonfigurasi lokasi dari berkas peta virtual di dalam berkas main.cf
Anda, Anda dapat menciptakan berkas itu sendiri dan mulai memetakan akun surel ke akun pengguna pada sistem Linux Anda. Ciptakan berkas dengan editor teks pilihan Anda; dalam contoh ini, kita akan menggunakan nano
:
- sudo nano /etc/postfix/virtual
Buat daftar alamat apa pun yang Anda ingin menerima surel darinya, diikuti oleh spasi kosong dan pengguna Linux yang Anda ingin kirimkan surel kepadanya.
Sebagai contoh, jika Anda ingin menerima surel di contact@example.com
dan admin@example.com
serta ingin agar surel-surel tersebut dikirim ke pengguna Linux sammy, Anda dapat menyiapkan berkas Anda seperti ini:
contact@example.com sammy
admin@example.com sammy
Setelah Anda memetakan semua alamat ke akun server yang sesuai, simpan dan tutup berkas. Jika Anda menggunakan nano
, lakukan ini dengan menekan CTRL + X
, Y
, kemudian ENTER
.
Terapkan pemetaan dengan mengetik:
- sudo postmap /etc/postfix/virtual
Mulai ulang proses Postfix untuk memastikan bahwa semua perubahan Anda telah diterapkan:
- sudo systemctl restart postfix
Dengan asumsi Anda telah mengikuti panduan prasyarat Penyiapan Server Awal, Anda akan memiliki firewall yang terkonfigurasi dengan UFW. Firewall ini akan memblokir koneksi eksternal ke layanan pada server Anda secara asali, kecuali koneksi itu diizinkan secara jelas, sehingga Anda harus menambahkan aturan firewall untuk mengizinkan pengecualian untuk Postfix.
Anda dapat mengizinkan koneksi ke layanan dengan mengetik:
- sudo ufw allow Postfix
Dengan itu, Postfix sudah terkonfigurasi dan siap menerima koneksi eksternal. Namun, Anda belum siap untuk mengujinya dengan klien surat. Sebelum Anda dapat menginstal klien dan menggunakannya untuk berinteraksi dengan surel yang dikirimkan ke server Anda, Anda perlu membuat beberapa perubahan pada pengaturan server Ubuntu.
Untuk berinteraksi dengan surel yang dikirimkan, langkah ini akan memandu Anda di sepanjang proses menginstal paket s-nail
. Ini adalah varian kaya fitur dari klien xmail
BSD yang dapat menangani format Maildir dengan benar.
Sebelum menginstal klien, merupakan hal bijaksana untuk memastikan variabel lingkungan MAIL
Anda sudah diatur dengan benar. s-nail
akan mencari variabel ini untuk mencari tahu tempat menemukan surel bagi pengguna Anda.
Untuk memastikan bahwa variabel MAIL
sudah diatur, terlepas dari cara Anda mengakses akun Anda — baik melalui ssh
, su
, su -
, atau sudo
, sebagai contohnya — Anda akan perlu menetapkan variabel di dalam berkas /etc/bash.bashrc
dan menambahkannya ke suatu berkas di dalam /etc/profile.d
untuk memastikan variabel tersebut disiapkan untuk semua pengguna secara asali.
Untuk menambah variabel ke berkas-berkas ini, ketik:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Untuk membacakan variabel ke dalam sesi Anda saat ini, dapatkan dari berkas /etc/profile.d/mail.sh
:
- source /etc/profile.d/mail.sh
Setelah itu selesai, instal klien surel s-nail
dengan APT:
- sudo apt install s-nail
Sebelum menjalankan klien, ada beberapa pengaturan yang Anda perlu atur. Buka berkas /etc/s-nail.rc
di dalam editor Anda:
- sudo nano /etc/s-nail.rc
Pada bagian bawah berkas, tambahkan opsi berikut:
. . .
set emptystart
set folder=Maildir
set record=+sent
Berikut adalah yang dilakukan baris-baris ini:
set emptystart
: mengizinkan klien untuk membuka bahkan dengan kotak masuk kosongset folder=Maildir
: menetapkan direktori Maildir
menjadi variabel folder
internalset record=+sent
menciptakan berkas mbox sent
untuk menyimpan surel yang dikirim di dalam direktori mana pun yang ditetapkan sebagai variabel folder
, dalam kasus ini Maildir
Simpan dan tutup berkas saat Anda sudah selesai. Anda kini siap untuk melakukan inisialisasi pada struktur Maildir sistem Anda.
Cara cepat untuk menciptakan struktur Maildir di dalam direktori rumah Anda adalah dengan mengirimkan suatu surel dengan perintah s-nail
kepada Anda. Karena berkas sent
hanya tersedia setelah Maildir diciptakan, Anda harus menonaktifkan penulisan padanya untuk surel awal ini. Lakukan ini dengan melewatkan opsi -Snorecord
.
Kirim surel dengan menambahkan string ke perintah s-nail
. Sesuaikan perintah untuk menandai pengguna Linux Anda sebagai penerima:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Catatan: Anda mungkin mendapat respons berikut:
OutputCan't canonicalize "/home/sammy/Maildir"
Ini adalah hal normal dan mungkin hanya muncul saat mengirim pesan pertama ini.
Anda dapat memeriksa untuk memastikan bahwa direktori telah diciptakan dengan mencari direktori ~/Maildir
:
- ls -R ~/Maildir
Anda akan melihat struktur direktori telah diciptakan dan bahwa berkas pesan baru berada di dalam direktori ~/Maildir/new
:
Output/home/sammy/Maildir/:
cur new tmp
/home/sammy/Maildir/cur:
/home/sammy/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com
/home/sammy/Maildir/tmp:
Kini setelah struktur direktori diciptakan, Anda siap untuk menguji klien s-nail
dengan melihat pesan init
yang Anda kirimkan dan mengirim pesan ke alamat surel eksternal.
Untuk membuka klien, jalankan perintah s-nail
:
- s-nail
Dalam konsol, Anda akan melihat kotak masuk rudimenter dengan pesan init
yang menunggu:
Outputs-nail version v14.9.15. Type `?' for help
"/home/sammy/Maildir": 1 message 1 new
>N 1 sammy@example.com 2020-05-19 15:40 14/392 init
Tekan ENTER
untuk menampilkan pesan:
Output[-- Message 1 -- 14 lines, 369 bytes --]:
From sammy@example.com Tue May 19 15:40:48 2020
Date: Tue, 19 May 2020 15:40:48 +0000
To: sammy@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: sammy@example.com
init
Anda dapat kembali ke daftar pesan dengan mengetik h
, lalu ENTER
:
- h
Output>R 1 sammy@example.com 2020-05-19 15:40 14/392 init
Perhatikan bahwa pesan itu kini memiliki kondisi R
, yang mengindikasikan bahwa pesan sudah dibaca.
Karena pesan ini tidak begitu berguna, Anda dapat menghapusnya dengan menekan d
, lalu ENTER
:
- d
Untuk kembali ke terminal, ketik q
lalu ENTER
:
- q
Sebagai ujian terakhir, periksa apakah s-nail
dapat mengirim surel dengan benar. Untuk melakukan ini, Anda dapat memasukkan konten dari berkas teks ke dalam proses s-nail
, seperti yang Anda lakukan dengan pesan init
yang Anda kirim pada langkah sebelumnya.
Mulailah dengan menulis pesan percobaan di dalam editor teks:
- nano ~/test_message
Di dalam editor, masukkan beberapa teks yang Anda ingin kirim:
Hello,
This is a test. Please confirm receipt!
Simpan dan tutup berkas setelah menulis pesan Anda.
Lalu, gunakan perintah cat
untuk memasukkan pesan ke proses s-nail
. Anda dapat melakukannya dengan mengikuti contoh berikut, yang menggunakan opsi ini:
-s
: Ini mendefinisikan baris subjek dari pesan surel-r
: Perubahan opsional terhadap bidang “From” dari surel. Secara asali, pengguna Linux yang Anda pakai untuk log masuk akan digunakan untuk mengisi bidang ini. Opsi -r
memungkinkan Anda untuk menimpa ini dengan alamat yang valid, seperti salah satu dari yang Anda definisikan dalam berkas /etc/postfix/virtual
. Sebagai contoh, perintah berikut menggunakan contact@example.com
Juga, pastikan untuk mengubah user@email.com
ke alamat surel valid yang Anda miliki aksesnya:
- cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com
Lalu, bernavigasilah ke kotak masuk untuk alamat surel yang menjadi tujuan Anda mengirim pesan. Anda akan segera melihat bahwa pesan Anda menunggu di sana.
Catatan: Jika pesan tidak ada di dalam kotak masuk Anda, pesan tersebut mungkin terkirim ke folder Spam Anda.
Anda dapat melihat pesan terkirim Anda di dalam klien s-nail
Anda. Mulai klien interaktif lagi:
- s-nail
Dari klien surel, lihat pesan terkirim Anda dengan mengetik:
- file +sent
Anda akan melihat keluaran seperti ini:
Output+[/home/sammy/Maildir/]sent: 1 message 1 new
▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line
Anda dapat mengelola surat terkirim menggunakan perintah yang sama dengan yang Anda gunakan untuk surel masuk.
Anda kini memiliki Postfix yang terkonfigurasi pada server Ubuntu 20.04 Anda. Mengelola server surel dapat menjadi tugas yang sulit untuk administrator sistem baru, tetapi dengan konfigurasi ini, Anda seharusnya memiliki fungsionalitas surel MTA yang cukup untuk membantu Anda memulai sendiri.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!