|
สวัสดีครับ
พอดีวันก่อนมีปัญหาเรื่อง DNS ของทาง CAT IDC ซึ่งเป็นผลทำให้ Server ของทาง hosting naxza ที่กำหนดค่า DNS Server ไว้ตัวเดียวเกิดปัญหาขึ้น อาการก็คือพวกไฟล์ที่มีการ fsockopen หรือมีการ fopen ผ่าน URL
อาการจะเป็นแบบนี้ครับ
Warning: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not know
ตอนแรกไม่ทราบว่าเป็นปัญหาที่ DNS จึงต้องแก้ไขโดยแทนที่จะให้เรียกผ่าน Domain Name ก็ให้เรียกผ่าน Host IP Address แทนครับ
ส่วนพวก script ต่าง ๆ ก็ประสบปัญหาเช่นเดียวกัน รวมถึง script ส่งเป็น phpmailer ส่งเมล์ผ่าน SMTP ของ gmail ครับ พอดีไปเจอ code นั้นเข้า จึงเอามาแนะนำ เผื่อใคร ๆ จะลองเอาไปใช้งานดูบ้างครับ
เริ่มต้นก็ download class phpmailer ได้ที่ http://www.naxza.com/download.php ครับ ส่วนตัวอย่าง code ให้ใช้ตัวนี้แทนนะครับ ในกระบวนการส่ง สมมุติว่ามีแบบฟอร์มกรอกข้อมูล และส่งค่าแบบ POST มาที่ไฟล์ชื่อ sentmail.php ซึ่งไฟล์มี code ดังนี้ครับ
require("class.phpmailer.php"); // ดึง class มาใช้ก่อนครับ ต้องมีไฟล์ class.phpmailer.php อยู่ในระดับเดียวกันกับ sentmail.php นะครับ
//***************************
$mail = new PHPMailer(); // สร้าง object class ครับ
$mail->IsSMTP(); // กำหนดว่าเป็น SMTP นะ
$mail->Host = 'ssl://smtp.gmail.com'; // กำหนดค่าเป็นที่ gmail ได้เลยครับ
$mail->Port = 465; // กำหนด port เป็น 465 ตามที่ google บอกครับ
$mail->SMTPAuth = true; // กำหนดให้มีการตรวจสอบสิทธิ์การใช้งาน
$mail->Username = 'youremailaddress@gmail.com'; // ต้องมีเมล์ของ gmail ที่สมัครไว้ด้วยนะครับ
$mail->Password = 'xxxxxxxx'; // ใส่ password ที่เราจะใช้เข้าไปเช็คเมล์ที่ gmail ล่ะครับ
$mail->From = $email; // ใครเป็นผู้ส่ง
$mail->FromName = $email; // ชื่อผู้ส่งสักนิดครับ
$mail->Subject = "มีรายการสั่งซื้อ hosting เข้ามา สำหรับโดเมนชื่อ ".$domain; // กำหนด subject ครับ
$mail->Body = $message_body; // ใส่ข้อความเข้าไปครับ
$mail->AltBody = $message_body;
$mail->AddAddress($toaddress); // ส่งไปที่ใครดีครับ
$mail->Send();
//****************************
เท่านี้ก็สามารถส่งผ่าน google gmail ได้แล้วครับ
บทความโดย : ณัฐธัญ เตชะกาญจนวงศ์
Naxza Web Hosting Provider
Webdesign Article : |