Showing posts with label mykiragst. Show all posts
Showing posts with label mykiragst. Show all posts

Hantar Email Guna Direct Access URL

Friday, April 03, 2015

Ada satu file php, iaitu sendmail.php. Di dalamnya ada email function, hardcoded. Jadi, untuk test hantar email, cuma akses file php tersebut terus melalui URL.

Bila taip di URL dan ENTER, file tidak dapat di akses.

Jadi, perlu tengok permission untuk file tersebut betul atau tidak. Sepatutnya permission-nya begini.

 # ls -l /var/www/html/sendmail.php   
 -r-xr-xr-x root smmsp /var/www/html/sendmail.php  


Kemudian, tengok pula folder clientmqueue

 # ls -l /var/spool/clientmqueue   
 drwxrwx--- smmsp smmsp /var/spool/clientmqueue  


Jika tidak sama seperti di atas, tukar guna chgrp dan chown, mana-mana yang perlu.

Contoh: Tukar group sendmail.php duduk di bawah group smmsp.

 #chgrp smmsp sendmail.php  
 chmod 555 send.php  


Nota: File ini akan jadi read-only. Jadi, tiada nak edit-edit lagi.

Kemudian, onkan http send mail. Setkan di setsebool.

Tengok status httpd_can_sendmail di getsebool

 # getsebool -a | grep mail  
 allow_postfix_local_write_mail_spool --> on  
 httpd_can_sendmail --> off  
 logging_syslogd_can_sendmail --> off  


Onkan http send mail
 # setsebool httpd_can_sendmail 1  



Sekarang, file sendmail.php sudah boleh diakses melalui URL dan email berjalan seperti biasa.

Buka browser, taip URL http://myurl.com/sendmail.php dan ENTER. Kemudian, semak inbox email.

Sendmail Menggunakan Relayhost Luar

Sunday, March 29, 2015

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=, relay=none. Maksudnya relay masih tidak disetkan dengan betul. 

Memandangkan dari error menunjukkan postfix kata relay=none, ini menunjukkan setting postfix yang perlu diperbetulkan. 

 # 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.