Category Archive Network

Byphunsanit

php: ส่งอีเมล์

การส่งอีเมล์ในภาษา php จะเขียนได้ง่ายๆ ในรูปแบบ

<?php
$headers = 'Content-Type: text/html; charset=UTF-8';
$message = 'เคยได้ยินไหม ที่ใครเคยบอกว่ารัก....เป็นดั่งรองเท้าคู่หนึ่งฉันได้ลองหา เพื่อมีวันหนึ่งที่ฉัน....ได้เจอรองเท้าที่ถูกใจบางทีก็ดูคับเกินไป บางที่ไม่เหมาะสมกับฉัน... ซักเท่าไหร่จนได้มาพบได้เจอรองเท้าคู่หนึ่ง... ที่ดูแล้วเข้ากับฉันมาถึงวันนี้... ก้าวเดินด้วยกันก็นาน... และตัวฉันยังพอใจบางคนบอกไม่สวยเท่าไหร่ แต่นี่คือที่ฉันมั่นใจ* ว่าฉันไม่เคยจะเปลี่ยนใจจากรองเท้าที่ฉันใส่อาจจะดูว่าเก่าเกินไปแต่ฉันก็ผูกพัน ตื่นเช้าขึ้นมา ก็ใส่เดินไป ก้าวไปกับฉันได้ออกไปเจอกับสิ่งดีดี ที่มีด้วยกัน ..... ตลอดไปแม้หนทางที่เดินไป มันจะดูไม่ง่ายดาย แต่ฉันก็ยังจะก้าวไปกับรองเท้าคู่ใจของฉัน .... ต่อไปบางทีก็ดูคับเกินไป บางที่ไม่เหมาะสมกับฉันบางคนบอกไม่สวยเท่าไหร่ แต่นี่คือที่ฉันมั่นใจ(*) ได้ออกไปเจอกับสิ่งดีดี ที่มีด้วยกัน..... ตลอดไปเคยได้ยินไหมที่ใครเคยบอกว่ารักเป็นดั่งรองเท้าคู่หนึ่ง';
$subject = 'ความรักกับรองเท้า';
$to = '[email protected]';

if (mail($to, $subject, $message, $headers)) {
	echo 'ส่งอีเมล์แล้ว';
} else {
	echo 'ไม่สำเร็จ';
}

แต่ถ้าใช้ xampp ในการติดตั้ง server ถึงจะติดตั้ง Mercury (mail server ที่ติดมากับ xampp) จะไม่สามารถส่งได้ทันที การส่งอีเมล์ จะทำให้เกิด error Warning: mail(): “sendmail_from” not set in php.ini or custom “From:” header missing in แก้ได้โดยเปิดไฟล์ C:\xampp\php\php.ini และถ้าใช้ windows ให้ลบ ; หน้า sendmail_from หรือ ถ้าเป็นเม็ค / linux ให้ลบ ; หน้า sendmail_path ออกไป

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =

แต่ถ้าส่งอีเมล์ไปที่ไม่ใช่ local host จะเห็น error Warning: mail(): SMTP server response: 553 We do not relay non-local mail, sorry. แก้โดยไปดูที่ xampp Control Panel หลัง mercury คลิก Admin จะมี mercury/32 เปิดขึ้นมา ไปที่ Configuration > MercuryS SMTP Server > Connection control แล้วเอาติ๊กหน้า Do not permit SMTP relaying of non-local mail ออกไป