PHPMailer là gì ? Hướng dẫn sử dụng PHPMailer

Bạn có một website bán hàng online bạn muốn nhận được thông báo khi có đơn hàng mới? Bạn là chủ một blog đang được nhiều người quan tâm và người ta muốn nhận thông báo từ bạn mỗi khi có bài viết mới thông qua email? Hay đơn giản là bạn muốn nhận được mail thông báo từ form liên hệ. Thì bài viết dưới đây sẽ giúp bạn điều đó, bài viết này tổng hợp những nội dung về hướng dẫn sử dụng phpmailer một cách dễ dàng nhất.

PHPMailer là gì ?

PHPMailer là một thư viện mã để gửi E-Mail một cách bảo đảm an toàn và đơn thuần trải qua mã PHP từ một sever Web. Gửi Mail trực tiếp bằng mã PHP nhu yếu mức độ quen thuộc cao với những chuẩn mực giao thức SMTP và những khó khăn vất vả tương quan và lỗ hổng về việc đưa Mail vào để gửi thư rác .
hướng dẫn sử dụng phpmailer

Tại sao cần đến PHPMailer?

PHP có tương hỗ hàm gửi Mail sẵn mặc dầu vậy không trọn vẹn hoàn toàn có thể gửi được cho tổng thể mọi người. Các bạn hoàn toàn có thể gặp trường hợp khi gửi Mail là cái được cái không, E-Mail của những bạn gửi đi hoàn toàn có thể sẽ nằm trong mục spam hoặc sever của bạn đã bị chặn. lúc đó những bạn phải cần có những giải pháp để sửa chữa thay thế. Cách làm ở đây những bạn nên sử dụng một thư viện hỗ trỡ cho việc gửi E-Mail trong PHP của bạn với cái tên PHPMailer .

Những tính năng của PHPMailer

  • Các 

    bạn có thể

     gửi Mail thông qua giao thức SMTP

  • Các bạn hoàn toàn dùng E-Mail cá nhân hoặc E-Mail doanh nghiệp để gửi thông tin cho khách hàng của bạn để làm tăng chất lượng Mail của bạn.
  • Gửi E-Mail với tốc độ nhanh ít lỗi và E-Mail được chuyển vào thẳng inbox
  • Các bạn hoàn toàn sử dụng được cc, bcc và tệp tin đính kèm
  • Bên cạnh đó các bạn sẽ tương tác lại với khách hàng 1 cách thuận tiện. Các bạn sẽ nhận được Mail trong hộp thư đến của bạn.

hướng dẫn sử dụng phpmailer

Hướng dẫn dùng PHPMailer version 6x

Đầu tiên bạn phải cần tải về thư viện PHPMailer 6.05

Import thư viện

Bạn triển khai import thư viện vào như sau, nhớ biến hóa đường dẫn tới mã nguồn mà bạn đã lưu nhé, và phải đặt đoạn code này ở trên cùng của tệp tin .

1
2
3
4
5
6
7
8

include APPPATH. "../storage/PHPMailer-master/src/PHPMailer.php";

include APPPATH. "../storage/PHPMailer-master/src/Exception.php";

include APPPATH. "../storage/PHPMailer-master/src/OAuth.php";

include APPPATH. "../storage/PHPMailer-master/src/POP3.php";

include APPPATH. "../storage/PHPMailer-master/src/SMTP.php";

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

Thự hiện gửi Mail

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

$mail = new PHPMailer(true); // Passing `true` enables exceptions

try

//Server settings

$mail->SMTPDebug = 2; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP

$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers

$mail->SMTPAuth = true; // Enable SMTP authentication

$mail->Username = '[email protected]'; // SMTP username

$mail->Password = 'secret'; // SMTP Password

$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted

$mail->Port = 587; // TCP port to connect to

//Recipients

$mail->setFrom('[email protected]', 'Mailer');

$mail->addAddress('[email protected]', 'Joe User'); // Add a recipient

$mail->addAddress('[email protected]'); // Name is optional

$mail->addReplyTo('[email protected]', 'Information');

$mail->addCC('[email protected]');

$mail->addBCC('[email protected]');

//Attachments

$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments

$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name

//Content

$mail->isHTML(true); // Set Mail format to HTML

$mail->Subject = 'Here is the subject';

$mail->Body = 'This is the HTML message body in bold!';

$mail->AltBody = 'This is the body in plain text for non-HTML E-Mail clients';

$mail->send();

echo 'Message has been sent';

catch (Exception $e)

echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;

Hướng dẫn dùng PHPMailer Version 5x

thứ nhất muốn dùng được bạn cần phải tải code của nó về đã .

Sau khi downnload về bạn giải nén nó ra bạn sẽ nhận được một vài file tuy vậy bạn chỉ cần dùng hai tệp tin đó là class.smtp.php & class.phpmailer.php còn những tệp tin khác bạn có thể nghiên cứu thêm trong số đó có một số mẫu ví dụng cũng hay lắm đó. Bây giờ bạn hãy coppy file đấy qua dự án của mình.

Sau khi đã có 2 file trên chúng ta cùng tạo 1 tệp tin có tên sendmail.php tất nhiên bạn đặt tền gì cũng được.

Và nội dung của tệp tin như sau .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

//goi thu vien

include('class.smtp.php');

include "class.phpmailer.php";

$nFrom = "Freetuts.net"; //mail duoc gui tu dau, thuong de ten cong ty ban

$mFrom = '[email protected]'; //dia chi Mail cua ban

$mPass = 'passlamatkhau'; //mat khau Mail cua ban

$nTo = 'Huudepzai'; //Ten nguoi nhan

$mTo = '[email protected]'; //dia chi nhan E-Mail

$mail = new PHPMailer();

$body = 'Bạn đang nghiên cứu và phân tích khám phá về cách gửi E-Mail bằng php mailler trên freetuts.net chúc các bạn có những phút giây vui vẻ.'; // Noi dung Mail

$title = 'Hướng dẫn gửi Mail bằng PHPMailer'; //Tieu de gui E-Mail

$mail->IsSMTP();

$mail->CharSet = "utf-8";

$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)

$mail->SMTPAuth = true; // enable SMTP authentication

$mail->SMTPSecure = "ssl"; // sets the prefix to the servier

$mail->Host = "smtp.gmail.com"; // sever gui E-Mail.

$mail->Port = 465; // cong gui Mail de nguyen

// xong phan cau hinh bat dau phan gui Mail

$mail->Username = $mFrom; // khai bao dia chi Mail

$mail->Password = $mPass; // khai bao mat khau

$mail->SetFrom($mFrom, $nFrom);

$mail->AddReplyTo('[email protected]', 'Freetuts.net'); //khi nguoi dung phan hoi se duoc gui den E-Mail nay

$mail->Subject = $title;// tieu de E-Mail

$mail->MsgHTML($body);// noi dung chinh cua E-Mail se nam o day.

$mail->AddAddress($mTo, $nTo);

// thuc thi lenh gui Mail

if(!$mail->Send())

echo 'Co loi!';

else

echo 'mail của bạn đã được gửi đi hãy kiếm tra hộp thư đến để xem kết quả. ';

?>

Chỉ dễ dàng thế thôi, rất nhàn đúng không nào, bạn thử chạy file sendmail.php & mở hộp thư đến ra kiêm tra xem có nhận được Mail không nhé.

Hướng dẫn tạo hàm để gửi E-Mail với PHPMailer

Như ở phần trên bạn đã gửi Mail thành công xuất sắc tuy nhiên giả sử trên trang Web của bạn bạn mong ước gửi Mail ở nhiều chỗ, VD khi người mua liên lạc bạn cần gửi E-Mail đến quản trị viên để thông tin. Khi có đơn hàng mới bạn phải cần gửi E-Mail xác nhận đơn hàng và thông tin tới quản trị viên. Không lẽ bạn cứ phải ôm theo một mớ code như thế ném ở mọi file rõ ràng là không gọn gàn chút nào phải không nào .

Và ở phần này mình sẽ hướng dẫn các bạn để cho chúng vào một hàm & trong hàm này hơi khác phần trên một tí là mình có bổ sung thêm tính năng thêm địa chỉ cc. Thực tế thì dựa vào phần trên bạn hoàn toàn có thể tự tạo hàm cho riêng mình tuy vậy ở đây mình tạo mẫu cho các bạn chưa rành lắm về hàm có thể ứng dụng.Bạn hãy tạo một file functions.php để viết các hàm vào đó. và ở đoạn code sau tôi có tạo sẵn hai hàm 1 là hàm sendMail để gửi Mail bình thường không có file đính kèm và hai là hàm sendMailAttachment để gửi Email có kèm theo file đính kèm. Tất nhiên bạn có thể gộp chúng thành một hàm cũng được nhưng mình ước muốn tách làm hai hàm riêng biệt để cho cụ thể. Nội dung tệp functions.php như sau.

hướng dẫn sử dụng phpmailer

1
2
3
4

5

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

function sendMail($title, $content, $nTo, $mTo,$diachicc='')

$nFrom = 'Freetuts.net';

$mFrom = '[email protected]'; //dia chi E-Mail cua ban

$mPass = 'passlamatkhau'; //mat khau Mail cua ban

$mail = new PHPMailer();

$body = $content;

$mail->IsSMTP();

$mail->CharSet = "utf-8";

$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)

$mail->SMTPAuth = true; // enable SMTP authentication

$mail->SMTPSecure = "ssl"; // sets the prefix to the servier

$mail->Host = "smtp.gmail.com";

$mail->Port = 465;

$mail->Username = $mFrom; // GMAIL username

$mail->Password = $mPass; // GMAIL Password

$mail->SetFrom($mFrom, $nFrom);

//chuyen chuoi thanh mang

$ccmail = explode(',', $diachicc);

$ccmail = array_filter($ccmail);

if(!empty($ccmail))

foreach ($ccmail as $k => $v)

$mail->AddCC($v);

$mail->Subject = $title;

$mail->MsgHTML($body);

$address = $mTo;

$mail->AddAddress($address, $nTo);

$mail->AddReplyTo('[email protected]', 'Freetuts.net');

if(!$mail->Send())

return 0;

else

return 1;

function sendMailAttachment($title, $content, $nTo, $mTo,$diachicc='',$file,$filename)

$nFrom = 'Freetuts.net';

$mFrom = '[email protected]'; //dia chi E-Mail cua ban

$mPass = 'passlamatkhua'; //mat khau E-Mail cua ban

$mail = new PHPMailer();

$body = $content;

$mail->IsSMTP();

$mail->CharSet = "utf-8";

$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)

$mail->SMTPAuth = true; // enable SMTP authentication

$mail->SMTPSecure = "ssl"; // sets the prefix to the servier

$mail->Host = "smtp.gmail.com";

$mail->Port = 465;

$mail->Username = $mFrom; // GMAIL username

$mail->Password = $mPass; // GMAIL Password

$mail->SetFrom($mFrom, $nFrom);

//chuyen chuoi thanh mang

$ccmail = explode(',', $diachicc);

$ccmail = array_filter($ccmail);

if(!empty($ccmail))

foreach ($ccmail as $k => $v)

$mail->AddCC($v);

$mail->Subject = $title;

$mail->MsgHTML($body);

$address = $mTo;

$mail->AddAddress($address, $nTo);

$mail->AddReplyTo('[email protected]', 'Freetuts.net');

$mail->AddAttachment($file,$filename);

if(!$mail->Send())

return 0;

else

return 1;

?>

Trong hàm trên mình có để cố định và thắt chặt phần AddReplyTo vì theo chủ ý cá thể của mình chắc phần này thường cố định và thắt chặt mặc dầu vậy nếu mạng lưới hệ thống của bạn gồm nhiều bộ phận thì hoàn toàn có thể nó sẽ khác nhau bạn từ kiểm soát và điều chỉnh cho nó tương thích .

Bây giờ bạn quay lại tệp sendmail.php viết code như sau để test nhé.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

//goi thu vien

include('class.smtp.php');

include "class.phpmailer.php";

include "functions.php";

$title = 'Hướng dẫn gửi Mail bằng phpmailer';

$content = 'Bạn đang nghiên cứu và phân tích tìm hiểu và khám phá về cách gửi Mail bằng php mailler trên freetuts.net chúc các bạn có những phút giây vui vẻ.';

$nTo = 'Huudepzai';

$mTo = '[email protected]';

$diachicc = '[email protected]';

//test gui Mail

$mail = sendMail($title, $content, $nTo, $mTo,$diachicc='');

if($mail==1)

echo 'mail của bạn đã được gửi đi hãy kiếm tra hộp thư đến để xem kết quả. ';

else echo 'Co loi!';

?>

Đối với hàm sendMailAttachment bạn sửa lại dòng sau.

1

$mail = sendMailAttachment($title, $content, $nTo, $mTo,$diachicc='','filedinhkem.docx',

Tổng kết

 

Ở trên mình & các bạn vừa tìm hiểu về hướng dẫn sử dụng phpmailer như đã nói ở trên, đây chính là một thư viện khá cơ bản và rất là nhiều người biết đến rồi mặc dù vậy mình vẫn mong muốn giới thiệu lại để cho bạn nào chưa biết tới nó và đang gặp khó khăn trong vấn đề gửi email có thể áp dụng được vào dự án của mình. Nếu có thắc mắc gì thì hãy comment phía dưới để khotenmien.vn liên lạc với bạn sớm nhất có thể.

Xem thêm : 2FA Code là gì ? Cách kích hoạt 2F a Code trên 1 số ít ứng dụng

Thanh Xuân – Tổng hợp, bổ sung