Inbucket Configurator
Hasil akhirnya adalah sebagai berikut, aku ambil yg versi systemd:
Environment=INBUCKET_LOGLEVEL=error
Environment=INBUCKET_MAILBOXNAMING=full
Environment=INBUCKET_SMTP_ADDR=0.0.0.0:25
Environment=INBUCKET_SMTP_DOMAIN=emx.sumarsono.com
Environment=INBUCKET_SMTP_MAXRECIPIENTS=100
Environment=INBUCKET_SMTP_MAXMESSAGEBYTES=10240000
Environment=INBUCKET_SMTP_DEFAULTACCEPT=false
Environment=INBUCKET_SMTP_ACCEPTDOMAINS=sumarsono.com,nalakawula.com
Environment=INBUCKET_SMTP_DEFAULTSTORE=false
Environment=INBUCKET_SMTP_STOREDOMAINS=sumarsono.com,nalakawula.com
Environment=INBUCKET_SMTP_TIMEOUT=300s
Environment=INBUCKET_POP3_ADDR=127.0.0.1:1100
Environment=INBUCKET_POP3_DOMAIN=sumarsono.com
Environment=INBUCKET_POP3_TIMEOUT=600s
Environment=INBUCKET_WEB_ADDR=127.0.0.1:9000
Environment=INBUCKET_WEB_UIDIR=/usr/local/share/inbucket/ui
Environment=INBUCKET_WEB_GREETINGFILE=/etc/inbucket/greeting.html
Environment=INBUCKET_WEB_TEMPLATECACHE=true
Environment=INBUCKET_WEB_MAILBOXPROMPT=@sumarsono.com
Environment=INBUCKET_WEB_COOKIEAUTHKEY=tKa8mGD7tqwCuYezdbE4chkQRxSotpCfs4ucB
Environment=INBUCKET_WEB_MONITORVISIBLE=true
Environment=INBUCKET_WEB_MONITORHISTORY=30
Environment=INBUCKET_STORAGE_TYPE=file
Environment=INBUCKET_STORAGE_PARAMS=path:/var/local/inbucket
Environment=INBUCKET_STORAGE_RETENTIONPERIOD=720h
Environment=INBUCKET_STORAGE_RETENTIONSLEEP=86400s
Environment=INBUCKET_STORAGE_MAILBOXMSGCAP=100
Catatan:
Kedua, aku unduh paket inbucket dari halaman rilis inbucket
root@emx:~# wget https://github.com/inbucket/inbucket/releases/download/v3.0.0-rc1/inbucket_3.0.0-rc1_linux_amd64.deb
Ketiga, tentu saja aku install
root@emx:~# dpkg -i inbucket_3.0.0-rc1_linux_amd64.deb
Keempat, aku edit inbucket.service
root@emx:~# nano /lib/systemd/system/inbucket.service
# isinya sesuaikan dengan hasil generate di tahap 1
[Unit]
Description=Inbucket Disposable Email Service
After=network.target
[Service]
Type=simple
User=daemon
Group=daemon
PermissionsStartOnly=true
# default conf
#Environment=INBUCKET_LOGLEVEL=warn
#Environment=INBUCKET_SMTP_ADDR=0.0.0.0:2500
#Environment=INBUCKET_POP3_ADDR=0.0.0.0:1100
#Environment=INBUCKET_WEB_ADDR=0.0.0.0:9000
#Environment=INBUCKET_WEB_UIDIR=/usr/local/share/inbucket/ui
#Environment=INBUCKET_WEB_GREETINGFILE=/etc/inbucket/greeting.html
#Environment=INBUCKET_STORAGE_TYPE=file
#Environment=INBUCKET_STORAGE_PARAMS=path:/var/local/inbucket
# Hasil generate tahap 1
Environment=INBUCKET_LOGLEVEL=error
Environment=INBUCKET_MAILBOXNAMING=full
Environment=INBUCKET_SMTP_ADDR=0.0.0.0:25
Environment=INBUCKET_SMTP_DOMAIN=sumarsono.com
Environment=INBUCKET_SMTP_MAXRECIPIENTS=100
Environment=INBUCKET_SMTP_MAXMESSAGEBYTES=10240000
Environment=INBUCKET_SMTP_DEFAULTACCEPT=false
Environment=INBUCKET_SMTP_ACCEPTDOMAINS=sumarsono.com,nalakawula.com
Environment=INBUCKET_SMTP_DEFAULTSTORE=false
Environment=INBUCKET_SMTP_STOREDOMAINS=sumarsono.com,nalakawula.com
Environment=INBUCKET_SMTP_TIMEOUT=300s
Environment=INBUCKET_POP3_ADDR=127.0.0.1:1100
Environment=INBUCKET_POP3_DOMAIN=sumarsono.com
Environment=INBUCKET_POP3_TIMEOUT=600s
Environment=INBUCKET_WEB_ADDR=0.0.0.0:9000
Environment=INBUCKET_WEB_UIDIR=/usr/local/share/inbucket/ui
Environment=INBUCKET_WEB_GREETINGFILE=/etc/inbucket/greeting.html
Environment=INBUCKET_WEB_TEMPLATECACHE=true
Environment=INBUCKET_WEB_MAILBOXPROMPT=@sumarsono.com
Environment=INBUCKET_WEB_COOKIEAUTHKEY=tKa8mGD7tqwCuYezdbE4chkQRxSotpCfs4ucB
Environment=INBUCKET_WEB_MONITORVISIBLE=true
Environment=INBUCKET_WEB_MONITORHISTORY=30
Environment=INBUCKET_STORAGE_TYPE=file
Environment=INBUCKET_STORAGE_PARAMS=path:/var/local/inbucket
Environment=INBUCKET_STORAGE_RETENTIONPERIOD=720h
Environment=INBUCKET_STORAGE_RETENTIONSLEEP=86400s
Environment=INBUCKET_STORAGE_MAILBOXMSGCAP=100
# Uncomment line below to use low numbered ports
ExecStartPre=/sbin/setcap 'cap_net_bind_service=+ep' /usr/local/bin/inbucket
ExecStartPre=/bin/mkdir -p /var/local/inbucket
ExecStartPre=/bin/chown daemon:daemon /var/local/inbucket
ExecStart=/usr/local/bin/inbucket
# Give SMTP connections time to drain
TimeoutStopSec=20
KillMode=mixed
[Install]
WantedBy=multi-user.target
Kelima, enable dan start inbucket.service
root@emx:~# systemctl daemon-reload
root@emx:~# systemctl enable --now inbucket.service
# verifikasi port-nya
root@emx:~# ss -tulpn | grep inbucket
tcp LISTEN 0 128 127.0.0.1:1100 0.0.0.0:* users:(("inbucket",pid=13101,fd=8))
tcp LISTEN 0 128 0.0.0.0:25 0.0.0.0:* users:(("inbucket",pid=13101,fd=6))
tcp LISTEN 0 128 127.0.0.1:9000 0.0.0.0:* users:(("inbucket",pid=13101,fd=7))
Keenam, bikin dns record, aku cuma butuh value ini
# a record emx.sumarsono.com
emx.sumarsono.com. 20 IN A 1xx.2xx.1xx.xx
# webui inbucket
anuan.sumarsono.com. 300 IN CNAME emx.sumarsono.com.
# mx record sumarsono.com
sumarsono.com. 300 IN MX 10 emx.sumarsono.com.
# mx record nalakawula.com
nalakawula.com. 300 IN MX 10 emx.sumarsono.com.
Ketujuh, bikin vhost (kebetulan pakai apache httpd) untuk reverse proxy webui inbucket dan websocketnya:
VirtualHost *:80>
ServerName anuan.sumarsono.com
<Proxy *>
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd-inbucket
Require valid-user
</Proxy>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/api/v1/monitor/messages [NC]
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:9000/$1 [P,L]
RequestHeader unset Origin
</VirtualHost>
Kedelapan, test kirim email ke sembarang@sumarsono.com dan sembarang@nalakawula.com, dalam hal ini aku coba ngirim dari gmail, emailnya masuk ke inbucket.
dan jika aku klik salah satu email tersebut maka akan tampil:
Selesai.
Cool~