Nội dung bài viết
#

PHPMailer là gì? Cách cài đặt PHPMailer để gửi mail

Sử dụng PHPMailer để gửi mail là một hình thức được nhiều người lựa chọn bởi thao tác đơn giản và tỉ lệ thành công cao. Trong bài viết BKHOST sẽ giúp bạn hiểu rõ hơn về PHPMailer và các bước thực hiện để mail được gửi đi nhanh chóng, an toàn.

PHPMailer là gì?

PHPMailer la gi

PHPMailer là một thư viện được cung cấp bởi một cộng đồng dành cho PHP. Với PHPMailer, tỉ lệ email được gửi tới hộp thư đến cao và hạn chế việc email bị đẩy vào thư mục thư rác. Sở dĩ làm được điều đó là bởi các thư viết bằng PHPMailer được chuyển từ người gửi tới người nhận bằng “Simple Mail Transfer Protocol” SMTP.

Sử dụng PHPMailer để làm gì?

Rất nhiều người lựa chọn sử dụng PHPMailer thay cho các chương trình khác bởi sự đơn giản, tiện dụng. Tính năng đặc biệt của PHPMailer là tạo các phản hồi tự động. Điều này thực sự hữu ích trong việc chuyển đơn hàng tự động cho những website bán hàng trực tuyến.

Mặt khác bằng cách cung cấp biểu mẫu liên hệ trên website PHPMailer cho phép người dùng liên hệ với bạn qua email.

Yêu cầu đối với PHPMailer

Để sử dụng PHPMailer bạn cần một Server SMTP, việc bạn thiết lập Server riêng hay dùng của nhà cung cấp là tùy bạn lựa chọn. Phần mở rộng PHP sẽ được trình quản lý gói PHP cài đặt để giúp người dùng thực hiện việc gửi email an toàn, hiệu quả.

Các bước cài đặt PHPMailer

Bước 1: Tải phiên bản PHPMailer hiện tại bằng trình quản lý gói hoặc Github

» Nếu chọn tải PHPMailer thông qua Composer bạn hãy sử dụng lệnh sau để cài đặt Composer:

composer require phpmailer/phpmailer

Một điều cần lưu ý là nếu đã cài đặt PHPMailer với Composer thì tất nhiên để gửi mail phải bao gồm Composer trong code PHP của mình. Dòng code sau rất phù hợp:
require_once "vendor/autoload.php"

Lệnh “require_once” được sử dụng để chèn một file vào một file khác và chỉ chèn 1 lần duy nhất, nếu làm khác đi thì chương trình sẽ bị lỗi.

» Bạn có thể tải PHPMailer trực tiếp từ Github bằng cách chọn “Clone or download”.

Bước 2: Giải nén tập tin

Nếu tải PHPMailer theo cách thủ công thì thì bắt buộc phải mở file ZIP, lưu file vào vị trí phù hợp và bắt đầu giải nén. Ví dụ như bạn giải nén PHPMailer ở thư mục có tên là PHPMailer:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Class for handling exceptions and errors */
require 'C:\PHPMailer\src\Exception.php';
/* PHPMailer class */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class needed to connect to an SMTP server */.
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);

Các bước gửi email bằng PHPMailer

Bước 1: Include namespaces

Khi truy cập PHPMailer bạn cần đảm bảo namespaces thật chính xác. Để không xảy ra sai sót, code của bạn phải chứa những dòng sau:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

Bước 2: Catch errors (Bắt lỗi)

Trong một vài trường hợp khi gửi email bằng PHPMailer vẫn xảy ra lỗi. Để ngăn dữ liệu nhạy cảm được chuyển từ Server Mail tới người nhận bạn cần tuyên bố bắt lỗi như sau:

try {
// Try to create a new instance of PHPMailer class
$mail = new PHPMailer (true);
// (...)
} catch (Exception $e) {
echo "Mailer Error: ".$mail->ErrorInfo;
}

Bước 3: Xác thực bằng SMTP

Để dùng PHPMailer thành công bạn phải xác thực bằng SMTP bằng cách nhập địa chỉ Server Mail ngay bên cạnh giao thức phù hợp. Kết hợp với đó bạn cần khai báo tên người dùng, mật khẩu.

$mail->isSMTP();
$mail->SMTPAuth = true;
// Personal data
$mail->host = "smtp.domain.com";
$mail->Port = "587";
$mail->username = "name.surname@domain.com";
$mail->password = "testpassword4321";
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

Bước 4: Khai báo người nhận email

Trong tập lệnh bạn cần khai báo rõ người nhận email:

// Sender
$mail->setFrom('info@example.com', 'name');
// Recipient, the name can also be stated
$mail->addAddress('info@example.com', 'name');
// Copy
$mail->addCC('info@example.com');
// Blind copy
$mail->addBCC('info@example.com', 'name');

Bước 5: Thêm nội dung mail

Nội dung sẽ bao gồm một văn bản và chủ đề chính của văn bản đó, tất cả đều có thể dưới dạng HTML hoặc không phải HTML. Một vấn đề bạn nên lưu tâm là hãy tạo email bằng HTML vì phần mềm cũ có thể không thể xử lý được tiêu chuẩn HTML5.

Với chức năng addAttachment bạn hoàn toàn có thể gửi thêm file đính kèm. Ngoài ra video, nhạc, hình ảnh tài liệu, GIF đều được gửi qua PHPMailer. Bạn cũng dễ dàng sử dụng tham số thứ hai được gửi đến hàm để đổi tên file đính kèm:

$mail->isHTML(true);
// Subject
$mail->Subject = 'The subject of your mail';
// HTML content
$mail->Body = 'The mail text as HTML content. <b>bold</b> elements are allowed.';
$mail->AltBody = 'The text as a simple text element';
// Add attachment
$mail-> addAttachment("/home/user/Desktop/sampleimage.png", "sampleimage.png");

Bước 6: Sử dụng mã hóa ký tự chính xác

Vì ở mỗi ngôi ngữ khác nhau thì chữ cái sẽ có trọng âm khác nhau. Để ngăn ngừa lỗi hiển thị bạn hãy bật UTF-8 trong PHPMailer, nhất là trường hợp gửi file đính kèm, hãy thêm các dòng code sau vào tập lệnh PHP:

$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';

Bước 7: Gửi email

Để gửi email bạn chỉ cần dùng lệnh:

$mail-> send();

Muốn phát hiện ra bất cứ lỗi nào trong khi gửi mail. Bạn hãy đặt tất cả các code được hiển thị trong yêu cầu gửi vào trong “try statement block”.

Một ví dụ về code để gửi email

Dưới đây là bảng tóm tắt tất cả các code quan trọng khi bạn chọn gửi email có kèm hình ảnh tới người nhận bằng PHPMailer:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require_once "vendor/autoload.php";
try {
// Create instance of PHPMailer class
$mail = new PHPMailer($debug);
if ($debug) {
// issue a detailed log
$mail->SMTPDebug = PHPMailer\PHPMailer\SMTP::DEBUG_SERVER; }
}
// Authentication with SMTP
$mail-> isSMTP();
$mail->SMTPAuth = true;
// Login
$mail->host = "smtp.domain.com";
$mail->Port = "587";
$mail->username = "name.surname@domain.com";
$mail->password = "testpassword4321";
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail-> addAttachment("/home/user/Desktop/sampleimage.png", "sampleimage.png");
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
$mail->isHTML(true);
$mail->Subject = 'The subject of your mail';
$mail->Body = 'The mail text in HTML content. <b>bold</b> elements are allowed.';
$mail->AltBody = 'The text as a simple text element';
$mail->send();
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: ".$mail->ErrorInfo;
}

Tổng kết về PHPMailer

Bài viết trên chúng tôi đã thông tin về khái niệm, các bước cài đặt, các bước gửi email bằng PHPMailer. Hy vọng với những gì tham khảo được bạn sẽ biết thêm một cách hay ho để những bức thư của mình đến đúng địa chỉ chỉ trong vài giây.

Nếu còn gặp bất cứ vướng mắc gì về PHPMailer, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Thuê Máy Chủ Vật Lý tại BKHOST

Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

thuê máy chủ server

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger
Góp ý
Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !