ไร้คอนเซปต์

Smart Phone Club & Computer Webmaster Programmer => ปรับแต่ง SMF (Simple Machines Forum) ขั้นเทพ => ข้อความที่เริ่มโดย: อาร์ตทูบี ที่ มีนาคม 22, 2012, 04:43:44 PM



หัวข้อ: วิธีแก้ปัญหา SMF Email ยืนยันสมาชิกเพี้ยน(ไม่เป็นภาษาไทย)
เริ่มหัวข้อโดย: อาร์ตทูบี ที่ มีนาคม 22, 2012, 04:43:44 PM
จู่ๆบอร์ดเราก็มีปัญหาเรื่อง Subject อีเมล์ ที่ภาษาไทยเพี้ยน
นะครับ เลยไปหาวิธีแก้มา เจอวิธีดีๆ เลยขออนุญาตคัดลอกมาเผื่อเป็นประโยชน์ต่อผู้ที่กำลังเจอปัญหานี้อยู่ครับ

ที่มาจาก : http://www.justusers.net/forum/index.php?topic=4970.0

SMF ส่ง Email ไป Homail,Yahoo แล้วผู้ส่งและหัวข้อภาษาไทยอ่านไม่ออก

(http://www.siamdatahost.com/images/stories/4-4-2553%201-26-18%20pm.gif)

เชื่อว่าหลายคนคงเจอปัญหานี้แล้วแล้วแก้ไม่ได้สักที

แก้ปัญหาโดย เปิดไฟล์ Sources/Subs-Post.php

ค้นหาบรรทัด
โค๊ด:
// Sadly Hotmail & Yahoomail don't support character sets properly.
(อยู่ประมาณบรรทัดที่ 540)

ให้ลบโค๊ดต่อไปนี้ทิ้ง

โค๊ด:
// Sadly Hotmail & Yahoomail don't support character sets properly.
if ($hotmail_fix === null)
{
$hotmail_to = array();
foreach ($to_array as $i => $to_address)
{
if (preg_match('~[แอท](yahoo|hotmail)\.[a-zA-Z\.]{2,6}$~i', $to_address) === 1)
{
$hotmail_to[] = $to_address;
$to_array = array_diff($to_array, array($to_address));
}
}

// Call this function recursively for the hotmail addresses.
if (!empty($hotmail_to))
$mail_result = sendmail($hotmail_to, $subject, $message, $from, $message_id, $send_html, $priority, true);

// The remaining addresses no longer need the fix.
$hotmail_fix = false;

// No other addresses left? Return instantly.
if (empty($to_array))
return $mail_result;
}

หรือเพิ่ม /*___________*/ เพื่อให้โค๊ดดังกล่าวไม่ทำงาน ดังนี้

โค๊ด:
// Sadly Hotmail & Yahoomail don't support character sets properly.
/*if ($hotmail_fix === null)
{
$hotmail_to = array();
foreach ($to_array as $i => $to_address)
{
if (preg_match('~[แอท](yahoo|hotmail)\.[a-zA-Z\.]{2,6}$~i', $to_address) === 1)
{
$hotmail_to[] = $to_address;
$to_array = array_diff($to_array, array($to_address));
}
}

// Call this function recursively for the hotmail addresses.
if (!empty($hotmail_to))
$mail_result = sendmail($hotmail_to, $subject, $message, $from, $message_id, $send_html, $priority, true);

// The remaining addresses no longer need the fix.
$hotmail_fix = false;

// No other addresses left? Return instantly.
if (empty($to_array))
return $mail_result;
}*/

Tip เล็กน้อย

หาก Email ที่ส่งไปชอบลงถังขยะ
ให้ใช้อีเมล์ของเว็บมาสเตอร์(ผู้ดูแล>> ค่าต่างๆของระบบ>>อีเมล์ของเว็บมาสเตอร์) เป็น xxx[แอท]mydomain.com เช่น no-reply[แอท]mydomain.com