Blog, thủ thuật, chia sẽ, giải trí
Sử dụng phpmailer gởi mail SMTP bằng Gmail/Google Apps
Hôm qua chiến hữu có liên lạc nhờ fix cái vụ mail SMTP gởi thông qua tài khoản email host trên Google app, sau một hồi mò mẫm thì ra vấn đề không phải trong code triển khai của mình mà là do bug trong class phpmailer cũ, nên cách giải quyết đơn giản là download phiên bản mới (phpmailer 5.1).
Thấy cái này có lẽ nhiều đồng chí gặp nên post lên để chia sẽ những gì đã làm. Số là script gởi mail của phpmailer sử dụng SMTP thì các bạn search trên mạng cũng khá đầy, nhưng post lại đây cho bạn nào quan tâm.
Thông số chính để chạy được SMTP thì đòi hỏi tối thiểu 3 tham số là SMTP Host, SMTP Username, SMTP Password:
– SMTP Host: thì nếu nhà cung cấp dịch vụ mail nào đưa ra SMTP thì họ cũng sẽ đưa cho mình cái địa chỉ, cụ thể của bác Gmail và các mail sử dụng cơ chế Google Apps thì có địa chỉ Host là smtp.gmail.com
– SMTP Username và SMTP Password chính là account email.
Các SMTP khác sao thì không biết, nhưng đối với Google thì chúng ta phải cấu hình SSL và Port 465 để có thể authen được.
Nếu bạn nào đã quen với OOP rồi thì việc sử dụng class phpmailer khá đơn giản, nó cung cấp khá nhiều property và method cho các vấn đề của chúng ta, kể cả attachment trong mail.
Dưới đây là đoạn script gởi mail mà mình test, các bạn có thể tham khảo sơ qua cách sử dụng 1 số method và property của phpmailer class.
[codesyntax lang="php"]
IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.gmail.com"; // specify main and backup server
$mail->Port = 465; // set the port to use
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->SMTPSecure = 'ssl';
$mail->Username = "username@gmail.com"; // your SMTP username or your gmail username
$mail->Password = "passwordhere"; // your SMTP password or your gmail password
$from = "fromemail@somemail.com"; // Reply to this email
$to="emailnguoinhan@domain.com"; // Recipients email ID
$name="Vo Duy Tuan"; // Recipient's name
$mail->From = $from;
$mail->FromName = "Your From Name"; // Name to indicate where the email came from when the recepient received
$mail->AddAddress($to,$name);
$mail->AddReplyTo($from,"Vo Duy Tuan");
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(true); // send as HTML
$mail->Subject = "Test mail script from bloghoctap.com";
$mail->Body = "Mail nay duoc goi bang phpmailer class. - bloghoctap.com"; //HTML Body
$mail->AltBody = "Mail nay duoc goi bang phpmailer class. - bloghoctap.com"; //Text Body
//$mail->SMTPDebug = 2;
if(!$mail->Send())
{
echo "
Loi khi goi mail: " . $mail->ErrorInfo . '
';
}
else
{
echo "
Send mail thanh cong
";
}
?>
[/codesyntax]
Các bạn có thể download file zip dưới đây gồm 3 file (class.phpmailer.php, class.smtp.php và send.php) bỏ vào localhost, thay đổi thông tin username,password cho đúng rồi test thử xem thế nào. Chúc vui!
| Print article | This entry was posted by MASTER on 02/06/2010 at 4:43 Sáng, and is filed under PHP. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |













