Cấu hình Gửi mail bằng PHPMailer trong php

Gửi mail bằng PHPMailer class Gữi mail bằng PHPMailer trong php, Cấu hình gữi mail bằng PHPMailer trong php
B. Hướng dẫn sử dụng và demo

1. Gửi email sử dụng hàm PHP mail()
- Trong PHPMailer cũng hộ trợ việc gửi email bằng hàm PHP mail() nếu host của chúng ta không khóa hàm nàyHPMailer trong phpử việc sử dụng email là việc gần như bắt buộc.Chúng ta có thể gửi email bằng nhiều cách như webmail, outlook express…Nhưng không phải lúc nào chúng ta cũng có thể thực hiện bằng các cách này và khách hàng của chúng ta cũng vậy

Vậy để giải quyết vấn đề này mỗi website của chúng ta cũng nên có ít nhất một Form để cho khách hàng liên hệ. Form này thường bao gồm những thành phần cơ bản sau: Tên người gửi (fullname) – Email người gửi – Tiêu đề (Subject) – Nội dung (content) – Tập tin đính kèm (Attach).

Nhưng hàm mail() trong PHP thường bị cấm trên các host vì người quản lý host sợ chúng ta dùng nó để bomb mail. Vì vậy để giải quyết vấn đề này chúng ta phải sử dụng tài khoản email của một webmail nào đó để gửi mail đi (SMTP) và để viết mã của phần không phải đơn giản. Nhưng đã có một giải pháp đó là chúng ta dùng PHPMailer để thực hiện

A. Download và cài đặt

1. Download
- Để sử dụng được PHPmailer đầu tiên chúng ta truy cập vào website http://phpmailer.worxware.com/.
- Chọn Product menu | PHP mailer | Download. Tiếp đó chúng ta chọn thư viện gửi mail phù hợp cho ứng dụng của chúng ta.
- Hoặc chúng ta có thể truy cập vào địa chỉ sau

http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/

Cấu hình Gửi mail bằng PHPMailer trong php
Tải file PHPMailer trong php


- Nhấn vào PHPMailer v5.1

Cấu hình Gửi mail bằng PHPMailer trong php

- Nhấn chọn PHPMailer_v5.1.zip để download

2. Cài đặt

- Giải nén tập tin PHPMailer_v5.1.zip. Sau đó copy các tập tin class.phpmailer.php, class.pop3.php, class.smtp.php vào thư mục phpmailer như hình sau:


Cấu hình Gửi mail bằng PHPMailer

- Nhúng thư viện phpmailer vào ứng dụng
<?php
//Nhúng thư viện phpmailer
require_once('phpmailer/class.phpmailer.php');

//Khởi tạo đối tượng
$mail = new PHPMailer();


B. Hướng dẫn sử dụng và demo

1. Gửi email sử dụng hàm PHP mail()
- Trong PHPMailer cũng hộ trợ việc gửi email bằng hàm PHP mail() nếu host của chúng ta không khóa hàm này

//Khởi tạo đối tượng
$mail = new PHPMailer();

/*=====================================
* THIET LAP THONG TIN GUI MAIL
*=====================================*/

//Thiet lap thong tin nguoi gui va email nguoi gui
$mail->SetFrom('vukhanh2212@gmail.com','Pham Vu Khanh');

//Thiết lập thông tin người nhận
$mail->AddAddress("zenvn@gmail.com", "ZendVN Group");
$mail->AddAddress("zenvn@yahoo.com", "ZendVN Group");

//Thiết lập email nhận email hồi đáp
//nếu người nhận nhấn nút Reply
$mail->AddReplyTo("vukhanh2212@yahoo.com","Pham Vu Khanh");

/*=====================================
* THIET LAP NOI DUNG EMAIL
*=====================================*/

//Thiết lập tiêu đề
$mail->Subject = "PHPMailer training by ZendVN Group";

//Thiết lập định dạng font chữ
$mail->CharSet = "utf-8";

//Thiết lập nội dung chính của email
$body = "Khóa học Lập Trình PHP được thực hiện bởi ZendVN Group";
$mail->Body = $body;

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}

2. Gửi email bằng SMTP
Trong trường hợp một số host không hỗ trợ hàm mail() của PHP chúng ta có thể sử dụng tài khoản webmail của host

Đầu tiên bạn vào host của bạn vào tạo một email. Ví dụ tôi tạo một email: demo@zend.vn với mật khẩu là: 123456. Đồng thới bạn phải chú ý xem SMTP của bạn là gì ví dụ của tôi là mail.zend.vn. Sau khi chuẩn bị xong chúng ta đã có thể bắt đầu sử dụng tài khoản này để gửi email
<?php
// file 02-smtp.php

//Nhúng thư viện phpmailer
require_once('phpmailer/class.phpmailer.php');

//Khởi tạo đối tượng
$mail = new PHPMailer();

/*=====================================
* THIET LAP THONG TIN GUI MAIL
*=====================================*/

$mail->IsSMTP(); // Gọi đến class xử lý SMTP
$mail->Host = "mail.zend.vn"; // tên SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // Sử dụng đăng nhập vào account
$mail->Host = "mail.zend.vn"; // Thiết lập thông tin của SMPT
$mail->Port = 25; // Thiết lập cổng gửi email của máy
$mail->Username = "demo@zend.vn"; // SMTP account username
$mail->Password = "123456"; // SMTP account password

//Thiet lap thong tin nguoi gui va email nguoi gui
$mail->SetFrom('demo@zend.vn','Pham Vu Khanh');

//Thiết lập thông tin người nhận
$mail->AddAddress("zendvn@gmail.com", "ZendVN Group");
$mail->AddAddress("zendvn@yahoo.com", "ZendVN Group");

//Thiết lập email nhận email hồi đáp
//nếu người nhận nhấn nút Reply
$mail->AddReplyTo("demo@zend.vn","Pham Vu Khanh");

/*=====================================
* THIET LAP NOI DUNG EMAIL
*=====================================*/

//Thiết lập tiêu đề
$mail->Subject = "PHPMailer training by ZendVN Group";

//Thiết lập định dạng font chữ
$mail->CharSet = "utf-8";

//Thiết lập nội dung chính của email
$body = "Khóa học Lập Trình PHP được thực hiện bởi ZendVN Group";
$mail->Body = $body;

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}

3. Gửi email bằng SMTP của Gmail

Trong trường hợp bạn không có webmail bạn có thể sử dụng tài khoản của Gmail. Bạn có thể đăng ký một tài khoản của Gmail tại địa chỉ http://www.gmail.com

Lúc này chúng ta cần chú ý 2 điều. Để gửi tài khoản bằng gmail chúng ta cần làm những điều sau nếu bạn dùng localhost
- Mở tập tin php.ini tìm dòng “extension=php_openssl.dll” bỏ dấu chấm phẩy và restart lại webserver
- Gmail sử dụng SMTPSecure (ssl) để gửi email
- Khi sử dụng ssl của gmail chúng ta phải sử dụng port 465

Vậy sau khi chúng ta chuẩn bị chúng ta đã có thể gửi email bằng một tài khoản của Gmail.

<?php
// file 03-gmail.php

//Nhúng thư viện phpmailer
require_once('phpmailer/class.phpmailer.php');

//Khởi tạo đối tượng
$mail = new PHPMailer();

/*=====================================
* THIET LAP THONG TIN GUI MAIL
*=====================================*/

$mail->IsSMTP(); // Gọi đến class xử lý SMTP
$mail->Host = "mail.zend.vn"; // tên SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // Sử dụng đăng nhập vào account
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com"; // Thiết lập thông tin của SMPT
$mail->Port = 465; // Thiết lập cổng gửi email của máy
$mail->Username = "zendvn.demo@gmail.com"; // SMTP account username
$mail->Password = "123456"; // SMTP account password

//Thiet lap thong tin nguoi gui va email nguoi gui
$mail->SetFrom('zendvn.demo@gmail.com','ZendVN Demo email');

//Thiết lập thông tin người nhận
$mail->AddAddress("zendvn@gmail.com", "ZendVN Group");
$mail->AddAddress("zendvn@yahoo.com", "ZendVN Group");

//Thiết lập email nhận email hồi đáp
//nếu người nhận nhấn nút Reply
$mail->AddReplyTo("khanhpham@zend.vn","Pham Vu Khanh");

/*=====================================
* THIET LAP NOI DUNG EMAIL
*=====================================*/

//Thiết lập tiêu đề
$mail->Subject = "PHPMailer training by ZendVN Group";

//Thiết lập định dạng font chữ
$mail->CharSet = "utf-8";

//Thiết lập nội dung chính của email
$body = "Khóa học Lập Trình PHP được thực hiện bởi ZendVN Group";
$mail->Body = $body;

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}



4. Gửi email với bộ soạn thảo văn bản và đính kèm file

Chuẩn một hệ thống thư mục như sau:

Gửi email với bộ soạn thảo văn bản và đính kèm file

Bước 1: Tạo nội dụng cho tập tin fck.php. Tập tin này chứa các bước cấu hình để tạo ra fckeditor

<?php
//1. Nhung tap tin fckeditor vao file chay
include("fckeditor/fckeditor_php5.php") ;

//2. Khai bao duong dan URL den thu muc fckeditor
$sBasePath = 'fckeditor/';

//3. Khoi tao doi tuong FCKeditor
$oFCKeditor = new FCKeditor('message') ;

//4. Thiet lap duong den cho thuong BasePath
$oFCKeditor->BasePath = $sBasePath;

//Dua gia tri vao Editor
$oFCKeditor->Value = 'Viết nội dung email vao đây';

//Thay doi kich thuoc cua Editor
$oFCKeditor->Width = '100%';
$oFCKeditor->Height = 300;
$oFCKeditor->ToolbarSet = 'Basic';
$oFCKeditor->Config['AutoDetectLanguage'] = false;
$oFCKeditor->Config['DefaultLanguage'] = 'en';

Bước 2: Tạo tập tin form.php và nhúng tập tập tin fck.php vào tập tin form.php

Tạo tập tin form.php và nhúng tập tập tin fck.php vào tập tin form.php

<?php
require_once("fck.php") ;
?>
<html>
<head>
<title>PHPMailer training by ZendVN Group</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="css/styles.css" media="screen" rel="stylesheet" type="text/css" >
</head>
<body>
<div id="content-load"></div>

<div id="container">
<h1>PHPMailer training by ZendVN Group</h1>
<div class="form">
<form method="post" action="" id="contact-us" >
<div class="input-box">
<label>Name:</label>
<input type="text" name="name" style="width: 100%"></input>

</div>
<div class="input-box">
<label>Email:</label>
<input type="text" name="email" style="width: 100%"></input>

</div>
<div class="input-box">
<label>Title:</label>
<input type="text" name="title" style="width: 100%"></input>

</div>

<div class="input-box">
<label>Message:</label>
<?php
//5. Tao FCKeditor
echo $oFCKeditor->Create() ;
?>

</div>
<div class="input-box">
<label>Attach:</label>
<input type="file" name="attach"></input>
</div>
<div class="submit">
<input type="submit" value="Submit">
</div>
</form>
</div>
</div>

</body>
</html>
Chúng ta sẽ nhập dữ liệu và nhấn nút submit để gửi dữ liệu qua thì chúng ta thêm một đoạn mã lệnh sau:

<?php
require_once("fck.php") ;
if(!empty($_POST)){
$arrParam = $_POST;
$attach = $_FILES['attach'];
$dirUpload = 'files/';
@copy($attach['tmp_name'], $dirUpload . $attach['name']);
include('send.php');
}
?>
Bước 3: Tạo tập tin send.php để xử lý vấn đề upload file và gửi email có đính kèm file.
<?php
// file send.php

//Nhúng thư viện phpmailer
require_once('phpmailer/class.phpmailer.php');

//Khởi tạo đối tượng
$mail = new PHPMailer();

/*=====================================
* THIET LAP THONG TIN GUI MAIL
*=====================================*/

$mail->IsSMTP(); // Gọi đến class xử lý SMTP
$mail->Host = "smtp.gmail.com"; // tên SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // Sử dụng đăng nhập vào account
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com"; // Thiết lập thông tin của SMPT
$mail->Port = 465; // Thiết lập cổng gửi email của máy
$mail->Username = "zendvn.demo@gmail.com"; // SMTP account username
$mail->Password = "123456"; // SMTP account password

/*=====================================
* DUA THONG TIN TU FORM GUI EMAIL VAO
*=====================================*/
//Thiet lap thong tin nguoi gui va email nguoi gui
$mail->SetFrom($mail->Username ,"ZendVN Email demo");

//Thiết lập thông tin người nhận
$mail->AddAddress('vukhanh2212@gmail.com', "Pham Vu Khanh");

//Thiết lập email nhận email hồi đáp
//nếu người nhận nhấn nút Reply
$mail->AddReplyTo($arrParam['email'],$arrParam['name']);

/*=====================================
* THIET LAP NOI DUNG EMAIL
*=====================================*/

//Thiết lập tiêu đề
$mail->Subject = $arrParam['title'];

//Thiết lập định dạng font chữ
$mail->CharSet = "utf-8";

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";

//Thiết lập nội dung chính của email
$body = $arrParam['message'];
$body = eregi_replace("[]",'',$body);
$mail->MsgHTML($body);
$mail->AddAttachment($dirUpload . $attach['name']);

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
unlink($dirUpload . $attach['name']);
}


Chúc bạn thành công!


Ý kiến của bạn:
 
Hộ và tên: *
Email: *
Tiêu đề: *
Nội dung: *
Đánh giá:
Bạn nhập mã bảo vệ vào ô bên cạnh: *
 
Thủ thuật
Cách lấy URL gốc từ short URLs bằng PHP (23/05/14)
10 phím tắt hay trong windows (12/05/14)
Hàm COUNT trong SQL (08/05/14)
Phần mềm tạo Webserver tải phần mềm Xampp (05/05/14)
Cách tải video YouTube không cần cài phần mềm (05/05/14)
Google sắp ra mắt điện thoại Nexus mới giá dưới 100 USD? (24/04/14)
Cách bật bàn phím Telex trên Windows Phone 8.1 (24/04/14)
2 loại thuốc diệt mối tận gốc hiệu quả nhất hiện nay (18/03/14)
7 cách kiếm tiền từ facebook mới nhất 2014 (10/03/14)
Thủ thuật loa laptop được bền lâu (14/09/12)