Sunday, March 02, 2014

PHP mail() ไม่ยอมส่งเมล์


มีลูกค้าโทรมาแจ้งโอนเงิน เราก็งงว่าเป็นค่าสินค้าอะไร และคนสั่งชื่ออะไร เค้าก็บอกว่าทำรายการแจ้งโอนเงินจากเว็บแล้ว เราก็เลยรู้ว่าระบบเมล์เราเดี้ยงแล้ว ก็เลยข้อให้เค้าเมล์แจ้งรายละเอียดการโอนเงินมา พร้อมทั้งชื่อที่อยู่สำหรับส่งด้วย ลูกค้าก็จัดการให้เรียบร้อย ทีนี้ก็ต้องมาหาสาเหตุว่าทำไมอยู่ดีๆ ระบบส่งเมล์ถึงมีปัญหาได้ วันก่อนที่ watchkan ก็เป็นอาการนี้เหมือนกัน ตอนนั้นแก้โดยการลบ sendmail แล้วก็ลง postfix แทน คราวนี้ก็เลยลองทำอย่างเดียวกัน
#sudo apt-get remove sendmail
#sudo apt-get install postfix

ทดสอบการลง Postfix โดยส่งเมล์ที่ shell เลย
#sendmail info@watchkzy.com
FROM: punkky@gmail.com
SUBJECT: Test postfix installation
Just installed postfix and this is a test mail
.
ลง postfix เสร็จแล้วก็ต้อง kill process ของ sendmail ด้วย เพราะบางทีมันค้างอยู่ทำให้ postfix ไม่ทำงาน (sendmail กับ postfix ทำงานด้วยกันไม่ได้)

#mkfifo /var/spool/postfix/public/pickup
#ps aux | grep mail
#kill sendmail process id)
#sudo /etc/init.d/postfix restart

สรุปกลับมาใช้งานได้
    

No comments: