<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Forum Neocloud - Tutorial]]></title>
		<link>https://neocloud.qzz.io/</link>
		<description><![CDATA[Forum Neocloud - https://neocloud.qzz.io]]></description>
		<pubDate>Sat, 06 Jun 2026 08:43:42 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Membuat Server Email Domain Sendiri Pada VPS Ubuntu]]></title>
			<link>https://neocloud.qzz.io/thread-3.html</link>
			<pubDate>Thu, 04 Jun 2026 03:41:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://neocloud.qzz.io/member.php?action=profile&uid=1">Neocloud</a>]]></dc:creator>
			<guid isPermaLink="false">https://neocloud.qzz.io/thread-3.html</guid>
			<description><![CDATA[Cara Mudah &amp; Cepat Membuat server email dengan domain sendiri di VPS (ubuntu/debian/linux) Tutorial ini menggunakan Ubuntu VPS.<br />
<br />
Pertama Set hostname VPS. <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo hostnamectl set-hostname mail.domainmu.xyz<br />
echo "127.0.0.1 mail.domainmu.xyz localhost" | sudo tee -a /etc/hosts<br />
sudo apt update &amp;&amp; sudo apt upgrade -y</code></div></div><br />
Jangan lupa juga pointing domain via cloudflare/dns andalanmu<br />
<br />
mail.domainmu.xyz ke ip vps mu.<br />
<br />
Lalu install App yand dibutuhkan<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d &#92;<br />
dovecot-lmtpd dovecot-sqlite sqlite3 certbot python3-certbot-apache &#92;<br />
opendkim opendkim-tools mailutils</code></div></div><br />
Ketika Muncul Pop Up pengaturan Postfix, Pilih<ul class="mycode_list"><li>Internet Site<br />
</li>
<li>mail.domainmu.xyz<br />
</li>
</ul>
<br />
=====================<br />
<span style="font-weight: bold;" class="mycode_b">Lanjut Tahap Selanjutnya</span><br />
<span style="font-weight: bold;" class="mycode_b">====================</span><br />
<br />
Berhubung Spec VPS hanya ram 512Mb, disini saya gunakan sqlite. Untuk rekomendasi, harusnya menggunakan MySql atau MariaDB<br />
<br />
kita membuat virtual user, domain, email alias dan database sqlite<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /etc/mail/sqlite<br />
sudo sqlite3 /etc/mail/sqlite/mailserver.db &lt;&lt;EOF<br />
CREATE TABLE virtual_domains (<br />
  id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
  name TEXT NOT NULL UNIQUE<br />
);<br />
<br />
CREATE TABLE virtual_users (<br />
  id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
  domain_id INTEGER NOT NULL,<br />
  email TEXT NOT NULL UNIQUE,<br />
  password TEXT NOT NULL,<br />
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id)<br />
);<br />
<br />
CREATE TABLE virtual_aliases (<br />
  id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
  domain_id INTEGER NOT NULL,<br />
  source TEXT NOT NULL,<br />
  destination TEXT NOT NULL,<br />
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id)<br />
);<br />
<br />
INSERT INTO virtual_domains (name) VALUES ('domainmu.xyz');<br />
<br />
-- Create a user (change password after generating hash)<br />
INSERT INTO virtual_users (domain_id, email, password) <br />
VALUES (1, 'admin@domainmu.xyz', 'passwordkeren123789!_');<br />
<br />
INSERT INTO virtual_aliases (domain_id, source, destination) <br />
VALUES (1, 'postmaster@domainmu.xyz', 'admin@domainmu.xyz');<br />
<br />
.exit<br />
EOF<br />
<br />
sudo chmod 640 /etc/mail/sqlite/mailserver.db<br />
sudo chown root:postfix /etc/mail/sqlite/mailserver.db</code></div></div><br />
<br />
Buat Password Hash untuk user email<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># membuat password untuk user email<br />
sudo doveadm pw -s SHA512-CRYPT<br />
# Masukan Password email mu (e.g., sayaganteng123)<br />
# Copy hasilnya (diawali {SHA512-CRYPT}...)<br />
<br />
# Update ke db sqlite dengan hasil tadi<br />
sudo sqlite3 /etc/mail/sqlite/mailserver.db &lt;&lt;EOF<br />
UPDATE virtual_users SET password = '{SHA512-CRYPT}HASH_PASSWORD_TADI' <br />
WHERE email = 'admin@domainmu.xyz';<br />
.exit<br />
EOF</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lanjut Setting POSTFIX</span><br />
Backup dulu Config Aslinya buat jaga - jaga<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.backup</code></div></div><br />
Setting postfix<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo postconf -e "myhostname = mail.domainmu.xyz"<br />
sudo postconf -e "mydomain = domainmu.xyz"<br />
sudo postconf -e "myorigin = &#92;&#36;mydomain"<br />
sudo postconf -e "inet_interfaces = all"<br />
sudo postconf -e "inet_protocols = ipv4"<br />
sudo postconf -e "mydestination = localhost"<br />
sudo postconf -e "local_recipient_maps ="<br />
sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"<br />
sudo postconf -e "virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_virtual_domains.cf"<br />
sudo postconf -e "virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailboxes.cf"<br />
sudo postconf -e "virtual_alias_maps = sqlite:/etc/postfix/sqlite_virtual_aliases.cf"</code></div></div><br />
<br />
Setting sqlite Postfix<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/postfix/sqlite_virtual_domains.cf &lt;&lt;EOF<br />
dbpath = /etc/mail/sqlite/mailserver.db<br />
query = SELECT name FROM virtual_domains WHERE name='%s'<br />
EOF<br />
<br />
sudo tee /etc/postfix/sqlite_virtual_mailboxes.cf &lt;&lt;EOF<br />
dbpath = /etc/mail/sqlite/mailserver.db<br />
query = SELECT email FROM virtual_users WHERE email='%s'<br />
EOF<br />
<br />
sudo tee /etc/postfix/sqlite_virtual_aliases.cf &lt;&lt;EOF<br />
dbpath = /etc/mail/sqlite/mailserver.db<br />
query = SELECT destination FROM virtual_aliases WHERE source='%s'<br />
EOF<br />
<br />
# Set permissions<br />
sudo chmod 640 /etc/postfix/sqlite_*.cf<br />
sudo chown root:postfix /etc/postfix/sqlite_*.cf</code></div></div><br />
Buat Struktur Folder<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /var/mail/vhosts/domainmu.xyz<br />
sudo groupadd -g 5000 vmail<br />
sudo useradd -g vmail -u 5000 vmail -d /var/mail -m<br />
sudo chown -R vmail:vmail /var/mail</code></div></div><br />
Lalu Atur Dovecot Main dengan sqlite<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/dovecot-sqlite.conf.ext &lt;&lt;EOF<br />
driver = sqlite<br />
connect = /etc/mail/sqlite/mailserver.db<br />
default_pass_scheme = SHA512-CRYPT<br />
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u'<br />
user_query = SELECT '/var/mail/vhosts/%d/%n' as home, 'vmail' as uid, 'vmail' as gid</code></div></div><br />
setting Dovecot<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's/#disable_plaintext_auth = yes/disable_plaintext_auth = yes/' /etc/dovecot/conf.d/10-auth.conf<br />
sudo sed -i 's/auth_mechanisms = plain/auth_mechanisms = plain login/' /etc/dovecot/conf.d/10-auth.conf<br />
sudo sed -i 's/!include auth-system.conf.ext/#!include auth-system.conf.ext/' /etc/dovecot/conf.d/10-auth.conf<br />
sudo sed -i 's/#!include auth-sql.conf.ext/!include auth-sql.conf.ext/' /etc/dovecot/conf.d/10-auth.conf</code></div></div><br />
Setting auth Dovecot<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/conf.d/auth-sql.conf.ext &lt;&lt;EOF<br />
passdb {<br />
  driver = sql<br />
  args = /etc/dovecot/dovecot-sqlite.conf.ext<br />
}<br />
userdb {<br />
  driver = static<br />
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n<br />
}</code></div></div><br />
Setting Lokasi Folder (?) Email<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's|^mail_location = .*|mail_location = maildir:/var/mail/vhosts/%d/%n|' /etc/dovecot/conf.d/10-mail.conf<br />
sudo sed -i 's/^mail_privileged_group =.*/mail_privileged_group = mail/' /etc/dovecot/conf.d/10-mail.conf</code></div></div><br />
juga Namespaces<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's/#mail_plugins = &#36;mail_plugins/mail_plugins = &#36;mail_plugins/' /etc/dovecot/conf.d/10-mail.conf</code></div></div><br />
setting protocol (IMAP &amp; POP3)<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's/^protocols = .*/protocols = imap pop3 lmtp/' /etc/dovecot/dovecot.conf</code></div></div><br />
Juga LMTP<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/conf.d/15-lmtp.conf &lt;&lt;EOF<br />
service lmtp {<br />
  unix_listener /var/spool/postfix/private/dovecot-lmtp {<br />
    mode = 0600<br />
    user = postfix<br />
    group = postfix<br />
  }<br />
}<br />
protocol lmtp {<br />
  postmaster_address = postmaster@domainmu.xyz<br />
}</code></div></div><br />
Setting SSL sementara, Nanti Diganti Ke Letsencrypt SSL Gratis<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /etc/dovecot/ssl<br />
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 &#92;<br />
  -keyout /etc/dovecot/ssl/dovecot.key &#92;<br />
  -out /etc/dovecot/ssl/dovecot.crt &#92;<br />
  -subj "/CN=mail.domainmu.xyz"<br />
<br />
sudo tee -a /etc/dovecot/conf.d/10-ssl.conf &lt;&lt;EOF<br />
ssl = required<br />
ssl_cert = &lt;/etc/dovecot/ssl/dovecot.crt<br />
ssl_key = &lt;/etc/dovecot/ssl/dovecot.key</code></div></div><br />
<br />
lalu tambah user vmail ke Group mail<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo usermod -aG mail vmail</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">==========================<br />
Lanjut SSL Lets Encrypt<br />
==========================<br />
<br />
</span><br />
Hentikan Dulu apache &amp; nginx Buat ngebebasin port 80<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo systemctl stop nginx apache2 2&gt;/dev/null || true</code></div></div><br />
<br />
Jalankan Certbot buat dapetin Cert Lets Encrypt<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo certbot certonly --standalone -d mail.neomovie.qzz.io --non-interactive &#92;<br />
  --agree-tos --email admin@domainmu.xyz</code></div></div><br />
Biar Auto Update Ketika Expired<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /etc/letsencrypt/renewal-hooks/post<br />
sudo tee /etc/letsencrypt/renewal-hooks/post/dovecot-postfix.sh</code></div></div><br />
atau pake nano buat bikin file tersebut, lalu isi ini<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#!/bin/bash<br />
systemctl restart dovecot postfix<br />
EOF<br />
sudo chmod +x /etc/letsencrypt/renewal-hooks/post/dovecot-postfix.sh</code></div></div><br />
<br />
Setting dovecot biar pake Cert Letsencrypt Tadi<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's|ssl_cert = .*|ssl_cert = &lt;/etc/letsencrypt/live/mail.domainmu.xyz/fullchain.pem|' /etc/dovecot/conf.d/10-ssl.conf<br />
sudo sed -i 's|ssl_key = .*|ssl_key = &lt;/etc/letsencrypt/live/mail.domainmu.xyz/privkey.pem|' /etc/dovecot/conf.d/10-ssl.conf</code></div></div><br />
Juga Posttfixnya<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo postconf -e "smtpd_tls_cert_file = /etc/letsencrypt/live/mail.domainmu.xyz/fullchain.pem"<br />
sudo postconf -e "smtpd_tls_key_file = /etc/letsencrypt/live/mail.domainmu.xyz/privkey.pem"<br />
sudo postconf -e "smtpd_use_tls = yes"<br />
sudo postconf -e "smtpd_tls_security_level = may"<br />
sudo postconf -e "smtpd_tls_auth_only = yes"</code></div></div><br />
<br />
Tambahkan SASL Auth Postfix<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo postconf -e "smtpd_sasl_type = dovecot"<br />
sudo postconf -e "smtpd_sasl_path = private/auth"<br />
sudo postconf -e "smtpd_sasl_auth_enable = yes"<br />
sudo postconf -e "smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination"</code></div></div><br />
Juga Dovecot SASL Auth nya<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/conf.d/10-master.conf &lt;&lt;EOF<br />
service auth {<br />
  unix_listener /var/spool/postfix/private/auth {<br />
    mode = 0660<br />
    user = postfix<br />
    group = postfix<br />
  }<br />
}</code></div></div><br />
<br />
<br />
Yooooooooo Sudah 90% Perjalanan!!!!<br />
langsung mulai!!<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo systemctl restart postfix dovecot<br />
sudo systemctl enable postfix dovecot<br />
sudo systemctl status postfix dovecot</code></div></div><br />
Kalo pake Firewall, open portnya<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo ufw allow 25/tcp   # SMTP<br />
sudo ufw allow 143/tcp  # IMAP<br />
sudo ufw allow 993/tcp  # IMAPS (secure)<br />
sudo ufw allow 110/tcp  # POP3<br />
sudo ufw allow 995/tcp  # POP3S (secure)<br />
sudo ufw allow 587/tcp  # SMTP submission<br />
sudo ufw reload</code></div></div><br />
<br />
Finnally, langsung coba login dong  <img src="https://neocloud.qzz.io/images/smilies/cool.png" alt="Cool" title="Cool" class="smilie smilie_3" />  <br />
<br />
Di settingan mail client mu Seperti Thunderbird / k9-mail atau Mail client lain yang Support SMTP<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Konfigurasikan mail client:<br />
<br />
IMAP Server: mail.domainmu.xyz (Port 993, SSL/TLS)<br />
<br />
SMTP Server: mail.domainmu.xyz (Port 587, STARTTLS)<br />
<br />
Username: admin@domainmu.xyz<br />
<br />
Password: PasswordmuPasHASHisiapa?<br />
<br />
Authentication: Password</code></div></div><br />
Kalo mau nambah user email,<br />
Konek dulu ke sqlite database nya<br />
<br />
sudo sqlite3 /etc/mail/sqlite/mailserver.db<br />
lalu<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>INSERT INTO virtual_users (domain_id, email, password) <br />
VALUES (1, 'newuser@domainmu.xy', '{SHA512-CRYPT}YOUR_HASH_buatlagihashnya');</code></div></div><br />
dapetin/bikin lagi Hash Password kyk kode diatas sebelume.<br />
<br />
Lalu bikinin Lokasi Folder Buat inbox &amp; attachment<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /var/mail/vhosts/domainmu.xyz/newuser<br />
sudo chown -R vmail:vmail /var/mail/vhosts/domainmu.xyz/newuser</code></div></div><br />
Lalu coba Login<br />
<br />
<br />
SELESAI. . . . Selamat Mengirim Email  <img src="https://neocloud.qzz.io/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[Cara Mudah &amp; Cepat Membuat server email dengan domain sendiri di VPS (ubuntu/debian/linux) Tutorial ini menggunakan Ubuntu VPS.<br />
<br />
Pertama Set hostname VPS. <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo hostnamectl set-hostname mail.domainmu.xyz<br />
echo "127.0.0.1 mail.domainmu.xyz localhost" | sudo tee -a /etc/hosts<br />
sudo apt update &amp;&amp; sudo apt upgrade -y</code></div></div><br />
Jangan lupa juga pointing domain via cloudflare/dns andalanmu<br />
<br />
mail.domainmu.xyz ke ip vps mu.<br />
<br />
Lalu install App yand dibutuhkan<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d &#92;<br />
dovecot-lmtpd dovecot-sqlite sqlite3 certbot python3-certbot-apache &#92;<br />
opendkim opendkim-tools mailutils</code></div></div><br />
Ketika Muncul Pop Up pengaturan Postfix, Pilih<ul class="mycode_list"><li>Internet Site<br />
</li>
<li>mail.domainmu.xyz<br />
</li>
</ul>
<br />
=====================<br />
<span style="font-weight: bold;" class="mycode_b">Lanjut Tahap Selanjutnya</span><br />
<span style="font-weight: bold;" class="mycode_b">====================</span><br />
<br />
Berhubung Spec VPS hanya ram 512Mb, disini saya gunakan sqlite. Untuk rekomendasi, harusnya menggunakan MySql atau MariaDB<br />
<br />
kita membuat virtual user, domain, email alias dan database sqlite<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /etc/mail/sqlite<br />
sudo sqlite3 /etc/mail/sqlite/mailserver.db &lt;&lt;EOF<br />
CREATE TABLE virtual_domains (<br />
  id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
  name TEXT NOT NULL UNIQUE<br />
);<br />
<br />
CREATE TABLE virtual_users (<br />
  id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
  domain_id INTEGER NOT NULL,<br />
  email TEXT NOT NULL UNIQUE,<br />
  password TEXT NOT NULL,<br />
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id)<br />
);<br />
<br />
CREATE TABLE virtual_aliases (<br />
  id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
  domain_id INTEGER NOT NULL,<br />
  source TEXT NOT NULL,<br />
  destination TEXT NOT NULL,<br />
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id)<br />
);<br />
<br />
INSERT INTO virtual_domains (name) VALUES ('domainmu.xyz');<br />
<br />
-- Create a user (change password after generating hash)<br />
INSERT INTO virtual_users (domain_id, email, password) <br />
VALUES (1, 'admin@domainmu.xyz', 'passwordkeren123789!_');<br />
<br />
INSERT INTO virtual_aliases (domain_id, source, destination) <br />
VALUES (1, 'postmaster@domainmu.xyz', 'admin@domainmu.xyz');<br />
<br />
.exit<br />
EOF<br />
<br />
sudo chmod 640 /etc/mail/sqlite/mailserver.db<br />
sudo chown root:postfix /etc/mail/sqlite/mailserver.db</code></div></div><br />
<br />
Buat Password Hash untuk user email<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># membuat password untuk user email<br />
sudo doveadm pw -s SHA512-CRYPT<br />
# Masukan Password email mu (e.g., sayaganteng123)<br />
# Copy hasilnya (diawali {SHA512-CRYPT}...)<br />
<br />
# Update ke db sqlite dengan hasil tadi<br />
sudo sqlite3 /etc/mail/sqlite/mailserver.db &lt;&lt;EOF<br />
UPDATE virtual_users SET password = '{SHA512-CRYPT}HASH_PASSWORD_TADI' <br />
WHERE email = 'admin@domainmu.xyz';<br />
.exit<br />
EOF</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lanjut Setting POSTFIX</span><br />
Backup dulu Config Aslinya buat jaga - jaga<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.backup</code></div></div><br />
Setting postfix<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo postconf -e "myhostname = mail.domainmu.xyz"<br />
sudo postconf -e "mydomain = domainmu.xyz"<br />
sudo postconf -e "myorigin = &#92;&#36;mydomain"<br />
sudo postconf -e "inet_interfaces = all"<br />
sudo postconf -e "inet_protocols = ipv4"<br />
sudo postconf -e "mydestination = localhost"<br />
sudo postconf -e "local_recipient_maps ="<br />
sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"<br />
sudo postconf -e "virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_virtual_domains.cf"<br />
sudo postconf -e "virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailboxes.cf"<br />
sudo postconf -e "virtual_alias_maps = sqlite:/etc/postfix/sqlite_virtual_aliases.cf"</code></div></div><br />
<br />
Setting sqlite Postfix<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/postfix/sqlite_virtual_domains.cf &lt;&lt;EOF<br />
dbpath = /etc/mail/sqlite/mailserver.db<br />
query = SELECT name FROM virtual_domains WHERE name='%s'<br />
EOF<br />
<br />
sudo tee /etc/postfix/sqlite_virtual_mailboxes.cf &lt;&lt;EOF<br />
dbpath = /etc/mail/sqlite/mailserver.db<br />
query = SELECT email FROM virtual_users WHERE email='%s'<br />
EOF<br />
<br />
sudo tee /etc/postfix/sqlite_virtual_aliases.cf &lt;&lt;EOF<br />
dbpath = /etc/mail/sqlite/mailserver.db<br />
query = SELECT destination FROM virtual_aliases WHERE source='%s'<br />
EOF<br />
<br />
# Set permissions<br />
sudo chmod 640 /etc/postfix/sqlite_*.cf<br />
sudo chown root:postfix /etc/postfix/sqlite_*.cf</code></div></div><br />
Buat Struktur Folder<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /var/mail/vhosts/domainmu.xyz<br />
sudo groupadd -g 5000 vmail<br />
sudo useradd -g vmail -u 5000 vmail -d /var/mail -m<br />
sudo chown -R vmail:vmail /var/mail</code></div></div><br />
Lalu Atur Dovecot Main dengan sqlite<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/dovecot-sqlite.conf.ext &lt;&lt;EOF<br />
driver = sqlite<br />
connect = /etc/mail/sqlite/mailserver.db<br />
default_pass_scheme = SHA512-CRYPT<br />
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u'<br />
user_query = SELECT '/var/mail/vhosts/%d/%n' as home, 'vmail' as uid, 'vmail' as gid</code></div></div><br />
setting Dovecot<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's/#disable_plaintext_auth = yes/disable_plaintext_auth = yes/' /etc/dovecot/conf.d/10-auth.conf<br />
sudo sed -i 's/auth_mechanisms = plain/auth_mechanisms = plain login/' /etc/dovecot/conf.d/10-auth.conf<br />
sudo sed -i 's/!include auth-system.conf.ext/#!include auth-system.conf.ext/' /etc/dovecot/conf.d/10-auth.conf<br />
sudo sed -i 's/#!include auth-sql.conf.ext/!include auth-sql.conf.ext/' /etc/dovecot/conf.d/10-auth.conf</code></div></div><br />
Setting auth Dovecot<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/conf.d/auth-sql.conf.ext &lt;&lt;EOF<br />
passdb {<br />
  driver = sql<br />
  args = /etc/dovecot/dovecot-sqlite.conf.ext<br />
}<br />
userdb {<br />
  driver = static<br />
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n<br />
}</code></div></div><br />
Setting Lokasi Folder (?) Email<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's|^mail_location = .*|mail_location = maildir:/var/mail/vhosts/%d/%n|' /etc/dovecot/conf.d/10-mail.conf<br />
sudo sed -i 's/^mail_privileged_group =.*/mail_privileged_group = mail/' /etc/dovecot/conf.d/10-mail.conf</code></div></div><br />
juga Namespaces<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's/#mail_plugins = &#36;mail_plugins/mail_plugins = &#36;mail_plugins/' /etc/dovecot/conf.d/10-mail.conf</code></div></div><br />
setting protocol (IMAP &amp; POP3)<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's/^protocols = .*/protocols = imap pop3 lmtp/' /etc/dovecot/dovecot.conf</code></div></div><br />
Juga LMTP<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/conf.d/15-lmtp.conf &lt;&lt;EOF<br />
service lmtp {<br />
  unix_listener /var/spool/postfix/private/dovecot-lmtp {<br />
    mode = 0600<br />
    user = postfix<br />
    group = postfix<br />
  }<br />
}<br />
protocol lmtp {<br />
  postmaster_address = postmaster@domainmu.xyz<br />
}</code></div></div><br />
Setting SSL sementara, Nanti Diganti Ke Letsencrypt SSL Gratis<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /etc/dovecot/ssl<br />
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 &#92;<br />
  -keyout /etc/dovecot/ssl/dovecot.key &#92;<br />
  -out /etc/dovecot/ssl/dovecot.crt &#92;<br />
  -subj "/CN=mail.domainmu.xyz"<br />
<br />
sudo tee -a /etc/dovecot/conf.d/10-ssl.conf &lt;&lt;EOF<br />
ssl = required<br />
ssl_cert = &lt;/etc/dovecot/ssl/dovecot.crt<br />
ssl_key = &lt;/etc/dovecot/ssl/dovecot.key</code></div></div><br />
<br />
lalu tambah user vmail ke Group mail<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo usermod -aG mail vmail</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">==========================<br />
Lanjut SSL Lets Encrypt<br />
==========================<br />
<br />
</span><br />
Hentikan Dulu apache &amp; nginx Buat ngebebasin port 80<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo systemctl stop nginx apache2 2&gt;/dev/null || true</code></div></div><br />
<br />
Jalankan Certbot buat dapetin Cert Lets Encrypt<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo certbot certonly --standalone -d mail.neomovie.qzz.io --non-interactive &#92;<br />
  --agree-tos --email admin@domainmu.xyz</code></div></div><br />
Biar Auto Update Ketika Expired<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /etc/letsencrypt/renewal-hooks/post<br />
sudo tee /etc/letsencrypt/renewal-hooks/post/dovecot-postfix.sh</code></div></div><br />
atau pake nano buat bikin file tersebut, lalu isi ini<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#!/bin/bash<br />
systemctl restart dovecot postfix<br />
EOF<br />
sudo chmod +x /etc/letsencrypt/renewal-hooks/post/dovecot-postfix.sh</code></div></div><br />
<br />
Setting dovecot biar pake Cert Letsencrypt Tadi<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo sed -i 's|ssl_cert = .*|ssl_cert = &lt;/etc/letsencrypt/live/mail.domainmu.xyz/fullchain.pem|' /etc/dovecot/conf.d/10-ssl.conf<br />
sudo sed -i 's|ssl_key = .*|ssl_key = &lt;/etc/letsencrypt/live/mail.domainmu.xyz/privkey.pem|' /etc/dovecot/conf.d/10-ssl.conf</code></div></div><br />
Juga Posttfixnya<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo postconf -e "smtpd_tls_cert_file = /etc/letsencrypt/live/mail.domainmu.xyz/fullchain.pem"<br />
sudo postconf -e "smtpd_tls_key_file = /etc/letsencrypt/live/mail.domainmu.xyz/privkey.pem"<br />
sudo postconf -e "smtpd_use_tls = yes"<br />
sudo postconf -e "smtpd_tls_security_level = may"<br />
sudo postconf -e "smtpd_tls_auth_only = yes"</code></div></div><br />
<br />
Tambahkan SASL Auth Postfix<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo postconf -e "smtpd_sasl_type = dovecot"<br />
sudo postconf -e "smtpd_sasl_path = private/auth"<br />
sudo postconf -e "smtpd_sasl_auth_enable = yes"<br />
sudo postconf -e "smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination"</code></div></div><br />
Juga Dovecot SASL Auth nya<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo tee /etc/dovecot/conf.d/10-master.conf &lt;&lt;EOF<br />
service auth {<br />
  unix_listener /var/spool/postfix/private/auth {<br />
    mode = 0660<br />
    user = postfix<br />
    group = postfix<br />
  }<br />
}</code></div></div><br />
<br />
<br />
Yooooooooo Sudah 90% Perjalanan!!!!<br />
langsung mulai!!<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo systemctl restart postfix dovecot<br />
sudo systemctl enable postfix dovecot<br />
sudo systemctl status postfix dovecot</code></div></div><br />
Kalo pake Firewall, open portnya<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo ufw allow 25/tcp   # SMTP<br />
sudo ufw allow 143/tcp  # IMAP<br />
sudo ufw allow 993/tcp  # IMAPS (secure)<br />
sudo ufw allow 110/tcp  # POP3<br />
sudo ufw allow 995/tcp  # POP3S (secure)<br />
sudo ufw allow 587/tcp  # SMTP submission<br />
sudo ufw reload</code></div></div><br />
<br />
Finnally, langsung coba login dong  <img src="https://neocloud.qzz.io/images/smilies/cool.png" alt="Cool" title="Cool" class="smilie smilie_3" />  <br />
<br />
Di settingan mail client mu Seperti Thunderbird / k9-mail atau Mail client lain yang Support SMTP<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Konfigurasikan mail client:<br />
<br />
IMAP Server: mail.domainmu.xyz (Port 993, SSL/TLS)<br />
<br />
SMTP Server: mail.domainmu.xyz (Port 587, STARTTLS)<br />
<br />
Username: admin@domainmu.xyz<br />
<br />
Password: PasswordmuPasHASHisiapa?<br />
<br />
Authentication: Password</code></div></div><br />
Kalo mau nambah user email,<br />
Konek dulu ke sqlite database nya<br />
<br />
sudo sqlite3 /etc/mail/sqlite/mailserver.db<br />
lalu<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>INSERT INTO virtual_users (domain_id, email, password) <br />
VALUES (1, 'newuser@domainmu.xy', '{SHA512-CRYPT}YOUR_HASH_buatlagihashnya');</code></div></div><br />
dapetin/bikin lagi Hash Password kyk kode diatas sebelume.<br />
<br />
Lalu bikinin Lokasi Folder Buat inbox &amp; attachment<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>sudo mkdir -p /var/mail/vhosts/domainmu.xyz/newuser<br />
sudo chown -R vmail:vmail /var/mail/vhosts/domainmu.xyz/newuser</code></div></div><br />
Lalu coba Login<br />
<br />
<br />
SELESAI. . . . Selamat Mengirim Email  <img src="https://neocloud.qzz.io/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></content:encoded>
		</item>
	</channel>
</rss>