วิธีส่งเมล์ผ่าน server gmail

ในการส่งเมล์ ในบ้างครั้ง server เราก็ไม่อนุญาตให้ส่งเมล์ออกไป หรือไม่ก็ server เราโดนบล๊อกจากผู้ให้บริการอีเมล์ เช่น hotmail gmail yahoo เป็นต้น
เราสามารถแก้ไขโดยการไปใช้ server gmail ในการส่งเมล์แทน server เราเอง แต่เราต้อง
1 . ไปโหลด php class ที่ชื่อว่า phpmailer ก่อน
และ
2. เปิดใช้งาน openssl โดยการ เอาเครื่องหมาย ; หน้า extension=php_openssl.dll จาก php.ini ออก และ Save แล้ว restart Webserver
ตัวอย่าง code การใช้งาน
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | require_once('class.phpmailer.php'); $mail = new PHPMailer(); $mail->IsHTML(true); // กำหนดให้ ส่งเป็น html $mail->IsSMTP(); $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "ssl://smtp.gmail.com:465"; // SMTP GMAIL server $mail->Username = "xxx@gmail.com"; // GMAIL username $mail->Password = "xxxxx"; // GMAIL password $mail->From = "เมลผู้ส่ง"; // "name@yourdomain.com"; $mail->FromName = "ชื่อผู้ส่ง"; $mail->Subject = "หัวข้ออีกเมล"; $mail->MsgHTML("ข้อความที่จะส่ง เป็น html ก็ได้"); $mail->AddAddress("e-mail ผู้รับ", "ชื่อผู้รับ"); // ใส่ email ผู้รับอย่างเดียวก็ได้ $mail->Send(); // ส่งเมลออก |
ขอขอบคุณ
http://phpmailer.worxware.com/index.php?pg=phpmailer
http://www.mindphp.com/modules.php?name=News&file=article&sid=101
เทคโนโลยี ที่ทำให้ facebook, twitter ให้บริการได้ร้อยล้านคนแบบ Real time ได้

เพื่อนๆ เคยนึกหรือไม่ครับว่า twitter และ facebook มีเครื่อง server กี่เครื่องครับ ?
ถ้าไม่ได้ติดตามก็คงตอบผิดครับ ผมเคยถามเพื่อน บางคนตอบว่า 50 บางคนบอกว่า 1000 เครื่อง ผิดหมดครับ
สำหรับ Facebook ใช้ Server ทั้งหมด (ถึงตุลาคมนี้) 30,000 เครื่องครับ
Ref: http://www.datacenterknowledge.com/archives/2009/10/13/facebook-now-has-30000-servers
ส่วน twitter ผมค้นหาแล้วไม่มีข้อมูลบอกนะครับ แต่คิดว่าคง ราวๆ หลายพันเครื่อง
ตรวจสอบ IP Address จริง
ในบางครั้งเราต้องการตรวจสอบคนที่เข้ามาใช้เวปเรา และโดยส่วนมาแล้วจะตรวจสอบโดย
check IP Address ซึ่งถ้าเราใช้
1 2 3 4 | <?php $ip=getenv(REMOTE_ADDR); print "IP Address is $ip"; ?> |
เราก็จะได้ IP Address มา แต่ก็ถ้าเครื่องนั้น ๆ ใช้ Proxy Server เราจะได้ IP Address ของ
Proxy มาแทน ซึ่งเราควรแก้ไข code ที่ใช้ มาเป็น
1 2 3 4 5 6 7 | if (getenv(HTTP_CLIENT_IP)) { $ip = getenv(HTTP_CLIENT_IP); } elseif (getenv(HTTP_X_FORWARDED_FOR)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } else { $ip = getenv(REMOTE_ADDR); } |
จะทำให้เราได้ IP Address ของเครื่องนั้น ๆ จริง ๆ

