#8-Mail Server

Pengertian Mail Server

  • Mail Server adalah server yang digunakan untuk mengirim, menerima, dan menyimpan email di dalam jaringan.

  • Mail server memungkinkan komunikasi surat elektronik antar pengguna dalam jaringan lokal (LAN) maupun internet.

🔎 Contoh nyata: Gmail, Yahoo Mail, Outlook.
Di lingkungan sekolah, mail server dapat digunakan untuk membuat email internal, misalnya siswa@tjkt.web.id

Fungsi Mail Server

  • Mengirim email (outgoing mail).
  • Menerima email (incoming mail).
  • Menyimpan pesan di mailbox server.
  • Menyediakan akses email melalui aplikasi client (Outlook, Thunderbird) atau webmail (Roundcube, Rainloop).
  • Mendukung komunikasi internal (intranet) maupun eksternal (internet).

Protokol pada Mail Server

  1. SMTP (Simple Mail Transfer Protocol)

    • Digunakan untuk mengirim email keluar dari client ke server, atau antar server.
    • Port default: 25 / 587 / 465 (SSL).
  2. POP3 (Post Office Protocol v3)

    • Digunakan untuk mengambil email dari server ke client.
    • Email biasanya diunduh dan dihapus dari server.
    • Port default: 110 (non-SSL), 995 (SSL).
  3. IMAP (Internet Message Access Protocol)

    • Digunakan untuk mengakses email langsung di server.
    • Email tetap tersimpan di server, sinkron di banyak perangkat.
    • Port default: 143 (non-SSL), 993 (SSL).

Komponen Mail Server

  • MTA (Mail Transfer Agent) → mengirim email keluar. (Contoh: Postfix, Sendmail, Exim).
  • MDA (Mail Delivery Agent) → mengatur distribusi email ke mailbox user.
  • MUA (Mail User Agent) → aplikasi email client (Thunderbird, Outlook, Webmail).
  • Mail Storage → tempat penyimpanan email (Maildir, mbox).

Jenis Mail Server

  • Internal Mail Server → digunakan di dalam jaringan lokal sekolah/kantor.
  • Public Mail Server → digunakan di internet, dapat diakses dari mana saja.
  • Hybrid Mail Server → kombinasi lokal dan cloud (misalnya backup ke Gmail/Outlook).

Alur Kerja Mail Server

  • User menulis email di client (misalnya Thunderbird).
  • Email dikirim ke server menggunakan SMTP.
  • Mail server meneruskan email ke server tujuan.
  • Server penerima menyimpan email di mailbox user.
  • Penerima membuka email melalui POP3/IMAP.

Langkah 1 – Update konfigurasi DNS Server (BIND)

Login sebagai user root dan lakukan update.

root@ns100:~# apt update
Get:1 https://security.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Hit:2 https://deb.debian.org/debian bookworm InRelease
Get:3 https://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:4 https://security.debian.org/debian-security bookworm-security/main Sources [150 kB]
Get:5 https://security.debian.org/debian-security bookworm-security/main amd64 Packages [277 kB]
Get:6 https://security.debian.org/debian-security bookworm-security/main Translation-en [167 kB]
Fetched 697 kB in 1s (601 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
44 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@ns100:~#

Edit file zona domain (db.sekolah100)

root@ns100:~# nano /etc/bind/db.sekolah100
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     sekolah100.sch.id. root.sekolah100.sch.id. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      sekolah100.sch.id.
@       IN      A       172.16.100.1
@       IN      MX 10   mail.sekolah100.sch.id

ns100   IN      A       172.16.100.1
www     IN      A       172.16.100.1
mail    IN      A       172.16.100.1

Edit file zona riverse IP (db.172)

root@ns100:~# nano /etc/bind/db.172
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     sekolah100.sch.id. root.sekolah100.sch.id. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      sekolah100.sch.id.
1       IN      PTR     sekolah100.sch.id.
1       IN      PTR     www.sekolah100.sch.id.
1       IN      PTR     mail.sekolah100.sch.id.

Restart service DNS

root@ns100:~# /etc/init.d/named restart
Restarting named (via systemctl): named.service.

Uji perubahan konfigurasi BIND yang telah dilakukan menggunakan tool nslookup.

root@ns100:~# nslookup

> mail.sekolah100.sch.id
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   mail.sekolah100.sch.id
Address: 172.16.100.1

> 172.16.100.1
1.100.16.172.in-addr.arpa       name = mail.sekolah100.sch.id.
1.100.16.172.in-addr.arpa       name = www.sekolah100.sch.id.
1.100.16.172.in-addr.arpa       name = sekolah100.sch.id.

> exit

Langkah 2 – Instalasi paket mail server

root@ns100:~# apt install postfix dovecot-imapd dovecot-pop3d
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  dovecot-core libexttextcat-2.0-0 libexttextcat-data liblua5.4-0 libstemmer0d libunwind8
Suggested packages:
  dovecot-gssapi dovecot-ldap dovecot-lmtpd dovecot-lucene dovecot-managesieved dovecot-mysql
  dovecot-pgsql dovecot-sieve dovecot-solr dovecot-sqlite dovecot-submissiond ntp ufw procmail
  postfix-mysql postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb postfix-sqlite resolvconf
  postfix-cdb mail-reader postfix-mta-sts-resolver postfix-doc
The following NEW packages will be installed:
  dovecot-core dovecot-imapd dovecot-pop3d libexttextcat-2.0-0 libexttextcat-data liblua5.4-0
  libstemmer0d libunwind8 postfix
0 upgraded, 9 newly installed, 0 to remove and 44 not upgraded.
Need to get 9,397 kB of archives.
After this operation, 21.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.debian.org/debian bookworm/main amd64 libexttextcat-data all 3.4.5-1 [164 kB]
Get:2 https://deb.debian.org/debian bookworm/main amd64 libexttextcat-2.0-0 amd64 3.4.5-1 [15.9 kB]
Get:3 https://deb.debian.org/debian bookworm/main amd64 liblua5.4-0 amd64 5.4.4-3+deb12u1 [137 kB]
Get:4 https://deb.debian.org/debian bookworm/main amd64 libstemmer0d amd64 2.2.0-2 [118 kB]
Get:5 https://deb.debian.org/debian bookworm/main amd64 libunwind8 amd64 1.6.2-3 [51.2 kB]
Get:6 https://deb.debian.org/debian bookworm/main amd64 dovecot-core amd64 1:2.3.19.1+dfsg1-2.1+deb12u1 [4,486 kB]
Get:7 https://deb.debian.org/debian bookworm/main amd64 postfix amd64 3.7.11-0+deb12u1 [1,510 kB]
Get:8 https://deb.debian.org/debian bookworm/main amd64 dovecot-imapd amd64 1:2.3.19.1+dfsg1-2.1+deb12u1 [1,528 kB]
Get:9 https://deb.debian.org/debian bookworm/main amd64 dovecot-pop3d amd64 1:2.3.19.1+dfsg1-2.1+deb12u1 [1,386 kB]
Fetched 9,397 kB in 2s (5,246 kB/s)
Preconfiguring packages ...

Pilih Internet Site, Gunakan tombol panah atas atau bawah untuk memilih Internet Site, kemudian gunakan tombol TAB untuk memilih [ok] lalu tekan [Enter]

Pastikan nama dari System mail name sesuai dengan aturan (FQDN)

ganti ns100.sekolah100.sch.id menjadi sekolah100.sch.id

Pilih [ok] lalu tekan [Enter]

Creating config file /etc/dovecot/conf.d/auth-dict.conf.ext with new version

Creating config file /etc/dovecot/conf.d/auth-master.conf.ext with new version

Creating config file /etc/dovecot/conf.d/auth-passwdfile.conf.ext with new version

Creating config file /etc/dovecot/conf.d/auth-sql.conf.ext with new version

Creating config file /etc/dovecot/conf.d/auth-static.conf.ext with new version

Creating config file /etc/dovecot/conf.d/auth-system.conf.ext with new version
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /lib/systemd/system/dovecot.service.
dovecot.socket is a disabled or a static unit, not starting it.
Setting up dovecot-imapd (1:2.3.19.1+dfsg1-2.1+deb12u1) ...

Creating config file /etc/dovecot/conf.d/20-imap.conf with new version
Setting up dovecot-pop3d (1:2.3.19.1+dfsg1-2.1+deb12u1) ...

Creating config file /etc/dovecot/conf.d/20-pop3.conf with new version
Processing triggers for libc-bin (2.36-9+deb12u10) ...
Processing triggers for dovecot-core (1:2.3.19.1+dfsg1-2.1+deb12u1) ...

Langkah 3 – Konfigurasi Postfix

root@ns100:~# dpkg-reconfigure postfix

Pilih Internet Site lalu pilih [Ok] dan tekan [Enter]

Pilih [Ok] dan tekan [Enter]

Pilih [Ok] dan tekan [Enter]

Pilih [Ok] dan tekan [Enter]

Pilih [No] dan tekan [Enter]

Tambahkan 0.0.0.0/0 lalu [Ok] dan tekan [Enter]

Pilih [Ok] dan tekan [Enter]

Pilih [Ok] dan tekan [Enter]

Pilih ipv4 lalu [Ok] dan tekan [Enter]

setting synchronous mail queue updates: false
setting myorigin
setting destinations: ns100.sekolah100.sch.id, sekolah100.sch.id, ns100.sekolah100.sch.id, localhost.sekolah100.sch.id, localhost
setting relayhost:
setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 0.0.0.0/0
setting mailbox_size_limit: 0
setting recipient_delimiter: +
setting inet_interfaces: all
setting inet_protocols: ipv4
WARNING: /etc/aliases exists, but does not have a root alias.

Postfix (main.cf) is now set up with the changes above.  If you need to make
changes, edit /etc/postfix/main.cf (and others) as needed.  To view Postfix
configuration values, see postconf(1).

After modifying main.cf, be sure to run 'systemctl reload postfix'.

Running newaliases

Konfigurasi file main.cf, tambahkan home_mailbox = Maildir/ di baris paling akhir. (Perhatikan penulisan huruf kapitalnya)

root@ns100:~# nano /etc/postfix/main.cf
...
...
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = ns100.sekolah100.sch.id
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = ns100.sekolah100.sch.id, sekolah100.sch.id, ns100.sekolah100.sch.id, localhost.sekolah100.>
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 0.0.0.0/0
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/ 

Edit file dovecot.conf, tambahkan listen = * 

root@ns100:~# nano /etc/dovecot/dovecot.conf
...
...
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

# A comma separated list of IPs or hosts where to listen in for connections.
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
#listen = *, ::
listen = *

# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/

Edit file 10-auth.conf, cari baris # disable_plaintext_auth = yes,  hapus “#” dan ubah dari yes menjadi no

root@ns100:~# nano /etc/dovecot/conf.d/10-auth.conf
##
## Authentication processes
##

# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
#disable_plaintext_auth = yes
disable_plaintext_auth = no

# Authentication cache size (e.g. 10M). 0 means it's disabled. Note that
# Time to live for cached data. After TTL expires the cached record is no
...
...

Edit file 10-mail.conf, Aktifkan lokasi atau letak direktori Mailbox

root@ns100:~# nano /etc/dovecot/conf.d/10-mail.conf
##
## Mailbox locations and namespaces
##

# Location for users' mailboxes. The default is empty, which means that Dovecot
# tries to find the mailboxes automatically. This won't work if the user
# doesn't yet have any mail, so you should explicitly tell Dovecot the full
# location.
#
# If you're using mbox, giving a path to the INBOX file (eg. /var/mail/%u)
# isn't enough. You'll also need to tell Dovecot where the other mailboxes are
# kept. This is called the "root mail directory", and it must be the first
# path given in the mail_location setting.
#
# There are a few special variables you can use, eg.:
#
#   %u - username
#   %n - user part in user@domain, same as %u if there's no domain
#   %d - domain part in user@domain, empty if there's no domain
#   %h - home directory
#
# See doc/wiki/Variables.txt for full list. Some examples:
#
#
mail_location = maildir:~/Maildir
#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
# mail_location = mbox:~/mail:INBOX=/var/mail/%u

# If you need to set multiple mailbox locations or want to change default
# namespace settings, you can do it by defining namespace sections.
#
...
...

Restart service postfix dan dovecot

root@ns100:~# /etc/init.d/postfix restart
Restarting postfix (via systemctl): postfix.service.

root@ns100:~# /etc/init.d/dovecot restart
Restarting dovecot (via systemctl): dovecot.service.

Langkah 4 – Membuat user email

Membuat user email (guru dan murid)

root@ns100:~# adduser guru

Adding user `guru' ... Adding new group `guru' (1003) ... Adding new user `guru' (1003) with group `guru (1003)' ... Creating home directory `/home/guru' ... Copying files from `/etc/skel' ... New password: guru Retype new password: guru passwd: password updated successfully Changing the user information for guru Enter the new value, or press ENTER for the default Full Name []: [Enter] Room Number []: [Enter] Work Phone []: [Enter] Home Phone []: [Enter] Other []: [Enter] Is the information correct? [Y/n] y Adding new user `guru' to supplemental / extra groups `users' ... Adding user `guru' to group `users' ...
root@ns100:~# adduser murid

Adding user `murid' ... Adding new group `murid' (1004) ... Adding new user `murid' (1004) with group `murid (1004)' ... Creating home directory `/home/murid' ... Copying files from `/etc/skel' ... New password: murid Retype new password: murid passwd: password updated successfully Changing the user information for murid Enter the new value, or press ENTER for the default Full Name []: [Enter] Room Number []: [Enter] Work Phone []: [Enter] Home Phone []: [Enter] Other []: [Enter] Is the information correct? [Y/n] y Adding new user `murid' to supplemental / extra groups `users' ... Adding user `murid' to group `users' ...

Mengaktifkan direktori Maildir

root@ns100:~# maildirmake.dovecot /etc/skel/Maildir

Restart service postfix dan dovecot

root@ns100:~# /etc/init.d/postfix restart
Restarting postfix (via systemctl): postfix.service.

root@ns100:~# /etc/init.d/dovecot restart
Restarting dovecot (via systemctl): dovecot.service.

Uji coba mengirim email dari user guru@sekolah100.sch.id ke murid@sekolah100.sch.id

root@ns100:~# apt install telnet
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  inetutils-telnet
The following NEW packages will be installed:
  inetutils-telnet telnet
0 upgraded, 2 newly installed, 0 to remove and 44 not upgraded.
Need to get 161 kB of archives.
After this operation, 316 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.debian.org/debian bookworm/main amd64 inetutils-telnet amd64 2:2.4-2+deb12u1 [120 kB]
Get:2 https://deb.debian.org/debian bookworm/main amd64 telnet all 0.17+2.4-2+deb12u1 [41.1 kB]
Fetched 161 kB in 0s (502 kB/s)
Selecting previously unselected package inetutils-telnet.
(Reading database ... 45093 files and directories currently installed.)
Preparing to unpack .../inetutils-telnet_2%3a2.4-2+deb12u1_amd64.deb ...
Unpacking inetutils-telnet (2:2.4-2+deb12u1) ...
Selecting previously unselected package telnet.
Preparing to unpack .../telnet_0.17+2.4-2+deb12u1_all.deb ...
Unpacking telnet (0.17+2.4-2+deb12u1) ...
Setting up inetutils-telnet (2:2.4-2+deb12u1) ...
update-alternatives: using /usr/bin/inetutils-telnet to provide /usr/bin/telnet (telnet) in auto mode
Setting up telnet (0.17+2.4-2+deb12u1) ...
  • Ketik telnet localhost 25 tekan [Enter]
  • Ketik mail from: guru tekan [Enter]
  • Ketik rcpt to: murid tekan [Enter]
  • Ketik data tekan [Enter]
  • Ketik test kirim email dari guru tekan [Enter]
  • Ketik . (titik) tekan [Enter]
  • Ketik quit tekan [Enter]
root@ns100:~# telnet localhost 25
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ns100.sekolah100.sch.id ESMTP Postfix (Debian/GNU)
mail from: guru
250 2.1.0 Ok
rcpt to: murid
250 2.1.5 Ok
data
354 End data with .
test kirim email dari guru
.
250 2.0.0 Ok: queued as 90D40C0144
quit
221 2.0.0 Bye
Connection closed by foreign host.

Memeriksa kiriman email dari user guru ke user murid

  • Ketik telnet localhost 110 tekan [Enter]
  • Ketik user murid tekan [Enter]
  • Ketik pass murid tekan [Enter]
  • Ketik stat tekan [Enter]
  • Ketik retr 1 tekan [Enter]
  • Ketik quit tekan [Enter]
root@ns100:~# telnet localhost 110
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot (Debian) ready.
user murid
+OK
pass murid
+OK Logged in.
stat
+OK 1 436
retr 1
+OK 436 octets
Return-Path: <guru@sekolah100.sch.id>
X-Original-To: murid
Delivered-To: murid@sekolah100.sch.id
Received: from localhost (localhost [127.0.0.1])
        by ns100.sekolah100.sch.id (Postfix) with SMTP id 90D40C0144
        for ; Fri,  5 Sep 2025 09:18:16 +0700 (WIB)
Message-Id: <20250905021829.90D40C0144@ns100.sekolah100.sch.id>
Date: Fri,  5 Sep 2025 09:18:16 +0700 (WIB)
From: guru@sekolah100.sch.id

test kirim email dari guru
.
quit
+OK Logging out.
Connection closed by foreign host.

Langkah 1 – Membuat database roundcube melalui phpMyAdmin

  1. Akses alamat url http://sekolah100.sch.id/phpmyadmin
  2. Username : root
  3. Password : P4ssword
  4. Klik tombol Log in
  1. Klik menu User accounts
  2. Klik Add user account
  1. Ketik roundcube
  2. Pilih local
  3. Ketik password12345
  4. Ketik ulang – 12345
  5. Centang pada Create database
  6. Centang Grant all priv
  7. Centang Check all
  8. Klik tombol Go

Langkah 2 – Install aplikasi webmail roundcube

root@ns100:~# apt install roundcube -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  aspell aspell-en dictionaries-common emacsen-common enchant-2 fonts-glyphicons-halflings hunspell-en-us
  libaspell15 libenchant-2-2 libglib2.0-0 libglib2.0-data libhunspell-1.7-0 libjs-bootstrap
  libjs-bootstrap4 libjs-jquery-minicolors libjs-jstimezonedetect libjs-popper.js libjs-sizzle
  node-jquery php-auth-sasl php-enchant php-guzzlehttp-guzzle php-guzzlehttp-promises php-guzzlehttp-psr7
  php-intl php-mail-mime php-masterminds-html5 php-net-sieve php-net-smtp php-net-socket
  php-psr-http-client php8.2-enchant php8.2-intl roundcube-core roundcube-mysql roundcube-skin-classic
  roundcube-skin-larry shared-mime-info xdg-user-dirs

Get:31 https://deb.debian.org/debian bookworm/main amd64 php-enchant all 2:8.2+93 [3,656 B]
Get:32 https://deb.debian.org/debian bookworm/main amd64 roundcube-skin-classic all 1.6.0+ds-2 [291 kB]
Get:33 https://deb.debian.org/debian bookworm/main amd64 roundcube-skin-larry all 1.6.0+ds-2 [315 kB]
Get:34 https://deb.debian.org/debian bookworm/main amd64 shared-mime-info amd64 2.2-1 [729 kB]
Get:35 https://deb.debian.org/debian bookworm/main amd64 xdg-user-dirs amd64 0.18-1 [54.4 kB]
Get:36 https://security.debian.org/debian-security bookworm-security/main amd64 php8.2-intl amd64 8.2.29-1~deb12u1 [137 kB]
Get:37 https://security.debian.org/debian-security bookworm-security/main amd64 roundcube-mysql all 1.6.5+dfsg-1+deb12u5 [95.4 kB]
Get:38 https://security.debian.org/debian-security bookworm-security/main amd64 roundcube-core all 1.6.5+dfsg-1+deb12u5 [4,697 kB]
Get:39 https://security.debian.org/debian-security bookworm-security/main amd64 roundcube all 1.6.5+dfsg-1+deb12u5 [1,296 B]
Get:40 https://security.debian.org/debian-security bookworm-security/main amd64 php8.2-enchant amd64 8.2.29-1~deb12u1 [9,388 B]
Fetched 12.1 MB in 6s (2,141 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
Selecting previously unselected package libjs-popper.js.
(Reading database ... 45110 files and directories currently installed.)
Preparing to unpack .../00-libjs-popper.js_1.16.1+ds-6_all.deb ...

Creating config file /etc/php/8.2/mods-available/intl.ini with new version
Setting up php-intl (2:8.2+93) ...
Setting up roundcube-skin-classic (1.6.0+ds-2) ...
Setting up dictionaries-common (1.29.5) ...
Setting up aspell (0.60.8-4+b1) ...
Setting up hunspell-en-us (1:2020.12.07-2) ...
Setting up php-guzzlehttp-guzzle (7.4.5-1) ...
Setting up libenchant-2-2:amd64 (2.3.3-2) ...
Setting up aspell-en (2020.12.07-0-1) ...
Setting up enchant-2 (2.3.3-2) ...
Setting up php8.2-enchant (8.2.29-1~deb12u1) ...

Creating config file /etc/php/8.2/mods-available/enchant.ini with new version
Setting up roundcube-core (1.6.5+dfsg-1+deb12u5) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/roundcube.conf


aspell-autobuildhash: processing: en [en_AU-variant_0].
aspell-autobuildhash: processing: en [en_AU-variant_1].
aspell-autobuildhash: processing: en [en_AU-w_accents-only].
aspell-autobuildhash: processing: en [en_AU-wo_accents-only].
aspell-autobuildhash: processing: en [en_CA-variant_0].
aspell-autobuildhash: processing: en [en_CA-variant_1].
aspell-autobuildhash: processing: en [en_CA-w_accents-only].
aspell-autobuildhash: processing: en [en_CA-wo_accents-only].
aspell-autobuildhash: processing: en [en_GB-ise-w_accents-only].
aspell-autobuildhash: processing: en [en_GB-ise-wo_accents-only].
aspell-autobuildhash: processing: en [en_GB-ize-w_accents-only].
aspell-autobuildhash: processing: en [en_GB-ize-wo_accents-only].
aspell-autobuildhash: processing: en [en_GB-variant_0].
aspell-autobuildhash: processing: en [en_GB-variant_1].
aspell-autobuildhash: processing: en [en_US-w_accents-only].
aspell-autobuildhash: processing: en [en_US-wo_accents-only].

Edit file config.inc.php dan lakukan perubahan seperti berikut ini:

root@ns100:~# nano /etc/roundcube/config.inc.php
<?php

/*
 +-----------------------------------------------------------------------+
 | Local configuration for the Roundcube Webmail installation.           |
 |                                                                       |
 | This is a sample configuration file only containing the minimum       |
 | setup required for a functional installation. Copy more options       |
 | from defaults.inc.php to this file to override the defaults.          |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) The Roundcube Dev Team                                  |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
 | See the README file for a full license statement.                     |
 +-----------------------------------------------------------------------+
*/

$config = [];

// Do not set db_dsnw here, use dpkg-reconfigure roundcube-core to configure database!
include("/etc/roundcube/debian-db-roundcube.php");

// IMAP host chosen to perform the log-in.
// See defaults.inc.php for the option description.
// $config['imap_host'] = ["localhost:143"];
$config['imap_host'] = ["sekolah100.sch.id"];

// SMTP server host (for sending mails).
// See defaults.inc.php for the option description.
// $config['smtp_host'] = 'localhost:587';
$config['smtp_host'] = 'sekolah100.sch.id:25';

// SMTP username (if required) if you use %u as the username Roundcube // will use the current username for login // $config['smtp_user'] = '%u'; $config['smtp_user'] = ''; // SMTP password (if required) if you use %p as the password Roundcube // will use the current user's password for login // $config['smtp_pass'] = '%p'; $config['smtp_pass'] = ''; ... ...

Memebuat file mail.conf 

root@ns100:~# cd /etc/apache2/sites-available/

root@ns100:/etc/apache2/sites-available# cp 000-default.conf mail.conf

root@ns100:/etc/apache2/sites-available# nano mail.conf
<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin haryadi@sekolah100.sch.id
        ServerName mail.sekolah100.sch.id
        ServerAlias mail.sekolah100.sch.id
        DocumentRoot /var/lib/roundcube

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Tambakan dokumen root (/var/lib) pada file apache2.conf, agar folder roundcube (/var/lib/roundcube) dapat dikenali. 

root@ns100:/etc/apache2/sites-available# nano /etc/apache2/apache2.conf
...
...
# Sets the default security model of the Apache2 HTTPD server. It does # not allow access to the root filesystem outside of /usr/share and /var/www. # The former is used by web applications packaged in Debian, # the latter may be used for local directories served by the web server. If # your system is serving content from a sub-directory in /srv you must allow # access here, or in any related virtual host. <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <Directory /var/lib/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ... ...

Aktifkan site mail.conf dan lakukan restart apache2, postfix dan dovecot 

root@ns100:/etc/apache2/sites-available# a2ensite mail.conf
Enabling site mail.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@ns100:/etc/apache2/sites-available# /etc/init.d/apache2 restart Restarting apache2 (via systemctl): apache2.service.
root@ns100:/etc/apache2/sites-available# /etc/init.d/postfix restart Restarting postfix (via systemctl): postfix.service.
root@ns100:/etc/apache2/sites-available# /etc/init.d/dovecot restart Restarting dovecot (via systemctl): dovecot.service.

Buka browser kemudian ketikan url https://mail.sekolah100.sch.id, gunakan akun guru untuk login

  1. Klik menu Compose (Create new email)
  2. Ketik alamat tujuan email – murid@sekolah100.sch.id
  3. Ketikan judul email – Tes email
  4. Ketikkan isi dari email – Tes kirim email
  5. Klik Send
  1. Login menggunakan akun murid
  2. Ketik password
  3. Klik LOGIN

Buka dan lihat isi email dari user guru

Mengirim balasan email ke user guru@sekolah100.sch.id

Membuka akun email guru@sekolah100.sch.id

Balasan email sudah masuk ke inbox guru

Kantor

Jl. dr. Wahidin Sudiro Husodo No.22,
Klaten Utara, Klaten 57432,
Jawa Tengah, INDONESIA.
Telp. 0272-321266

Terbaru

Galeri

Copyright © 2025  – TJKT SMK NEGERI 1 KLATEN – HYD