Situasi: Perlu hantar e-mail kepada 3 domain yang berlainan. Gmail (google), MIMOS (syarikat) dan KPDNKK (kerajaan). Ketiga-tiga tempat ini mempunyai cara berbeza dalam menangani email yang sampai kepada mereka.
OS: Centos
Lokasi Server: Bangunan/Infra kpdnkk
Relayhost: mail.isp.mailgov (bukan kpdnkk), ataupun guna IP mail server. Pilih salah satu.
Install Sendmail
pastikan sudah ada sendmail atau belum
#service sendmail status
Jika tiada, install sendmail.
#yum install sendmail sendmail-cf
Cari lokasi fail sendmail.mc, mungkin dalam folder /etc/mail/
#updatedb
#locate sendmail.mc
Edit fail sendmail.mc
#vi sendmail.mc
Terdapat 2 bahagian perlu diubah. Smart_host dan masquerade_as dnl define(`SMART_HOST', `') dnl MASQUERADE_AS(`mykiragst.kpdnkk.gov.my')dnl edit menjadi
define(`SMART_HOST', `mail.isp.mailgov')
MASQUERADE_AS(`mykiragst.kpdnkk.gov.my')dnl
di mana dnl sama seperti comment. Buang komen dan masukkan value. Kemudian, running make. Ia akan cipta file sendmail.cf.
#make
atau
#/etc/mail/make
sendmail.cf ini adalah file configuration untuk email. Tidak boleh diedit secara terus. Perlu melalui sendmail.mc dan compile. Check fail sendmail.cf, adakah smart_host point ke mail relay server? Jika ya, restart service sendmail
#service sendmail restart
Cuba hantar e-mel menggunakan command line.
#mail firdaus@gmail.com<ENTER>
Subject: Test Sendmail<ENTER>
Ini adalah email testing <ENTER>
.<ENTER>
<ENTER>
Jika tidak mahu guna titik dan ENTER, boleh guna Ctrl+D untuk complete and send. Pastikan email telah dihantar ke gmail. Kalau tak dapat emel, mintak kpdnkk allowkan ip apps server (OS Centos ini) di mail relay server.
3 E-mail berlaian host
Email dihantar kepada 3 tempat berlainan, contoh: firdaus@gmail.com, firdaus@mimos.my, pegawai@kpdnkk.gov.my
Keputusan: Gmail berjaya, mimos dan kpdnkk tidak berjaya.
Lihat pada email log file.
#tail -f /var/log/maillog
1: Mar 18 17:24:44 mimos-app postfix/smtp[1493]: B038441B38: to=<pegawai@kpdnkk.gov.my>, relay=none, delay=55482, delays=55482/0.01/0.04/0, dsn=4.4.1, status=deferred (connect to kpdnkk.gov.my[10.23.150.16]:25: Connection refused)
2: Mar 18 17:25:31 mimos-app postfix/smtp[1492]: E570442076: to=<firdaus@mimos.my>, relay=dexter.mimos.my[202.45.138.110]:25, delay=1529, delays=1482/0.02/47/0.12, dsn=4.1.8, status=deferred (host doctors.mimos.my[202.45.138.110] said: 450 4.1.8 <root@mimos-app.localdomain>: Sender address rejected: MX or A record not found (in reply to RCPT TO command))
3: Mar 18 17:22:15 mimos-app postfix/smtp[1324]: 5FAE4420B7: to=<firdaus@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.130.26]:25, delay=2.1, delays=0.06/0.01/0.73/1.3, dsn=2.0.0, status=sent (250 2.0.0 OK 1429348876 my10si2599339pdb.33 - gsmtp)
gmail status=sent.kpdnkk status=deferred. Connection refuse.
mimos status= deferred. Sender address rejected.
Mungkin gmail terima sahaja email dari root@mimos-app.localdomain. Manakala mimos akan pastikan domain tersebut dikenalpasti. Jika tidak, e-mail itu akan ditolak. MIMOS mengandaikan ini email spam.
kpdnkk pula tidak berjaya dijumpai, lalu connection refuse. Mungkin isu unqualified domain.
Mungkin hostname/nama server ini @mimos-app.localdomain tidak dikenali diinternet, perlu tukar kepada nama yang valid.
Cuba lihat apa hostname server ini
#hostname
atau
#hostname -f
Untuk tukar hostname sementara waktu, jalankan arahan ini.
hostname NEWNAME
#hostname mykiragst.kpdnkk.gov.my
Untuk tukar secara kekal, edit /etc/hosts. Selepas tukar, perlu restart OS.
Contoh: 127.0.0.1 domain.com localhost.localdomain
x.x.x.x domain.com
Di mana x.x.x.x adalah IP
1: --------------/etc/hosts---------------
2: 127.0.0.1 mykiragst.kpdnkk.gov.my localhost.localdomain localhost
3: 10.23.155.135 mykiragst.kpdnkk.gov.my mykiragst
Apabila send e-mail semula, MIMOS sudah berjaya menerima email dari server ini. Tetapi kpdnkk masih gagal dengan error yang sama. Ini kerana pegawai@kpdnkk.gov.my diconnect relayhost. Jadi, bila sendmail, dia cuba connect to kpdnkk.gov.my[10.23.150.16]:25: Connection refused.
Sepatutnya dia connect ke mail.isp.mailgov. Pada status, to=
# vi /etc/postfix/main.cf
myhostname = localhost
Tukar kepada:
1: myhostname = mykiragst.kpdnkk.gov.my
2: inet_interfaces = all
3: relayhost = mail.isp.mailgov
Kemudian, restart postfix
# /etc/init.d/postfix restart
Hantar semula e-mail ke pegawai@kpdnkk.gov.my, dan ianya berjaya. Jadi, bila dah disetkan relayhost = mail.isp.mailgov di /etc/postfix/main.cf, dan restart postfix, semua email berjaya dihantar.
TAMBAHAN
Untuk tengok email que list yang belum dihantar
# postqueue -p
flush email2 atau re-send semua e-mail yang deferred (sangkut) sebelum ini.
# postqueue -f
Delete semua email yang tersangkut.
# postsuper -d ALL
Delete semua email yang berstatus deferred.
# postsuper -d ALL deferred
Untuk lihat apa port yang buka di kpdnkk sebab connection ke port 25 refused.
host -a kpdnkk.gov.my
atau
dig kpdnkk.gov.my MX
Sepatutnya dig ke mail.isp.mailgov, bukan kpdnkk. Walaupun hantar email ke kpdnkk, tetapi dia akan check port 25 di relayhost.
1 comments:
Install sendmail pun boleh atasi masalah relay tanpa perlu usik postfix setting.
sudo apt-get install sendmail
Post a Comment