Hướng dẫn gửi email SMTP trong WordPress không dùng plugin

12 lượt xem
Hướng dẫn gửi email SMTP trong WordPress không dùng plugin

Trong quá trình làm website WordPress cho khách và cả website cá nhân, mình gặp khá nhiều trường hợp web không gửi được mail: từ mail liên hệ, đơn hàng WooCommerce cho tới email reset mật khẩu. Cài plugin SMTP thì nhanh thật, nhưng dùng lâu mới thấy nhược điểm: web nặng hơn, phụ thuộc plugin, có lúc update là lỗi hoặc xung đột.

Sau một thời gian tìm hiểu và thử nghiệm, mình chọn cách cấu hình gửi email SMTP trực tiếp bằng code trong WordPress. Cách này nhẹ, chủ động, dễ debug và đặc biệt là không cần cài thêm bất kỳ plugin nào. Chỉ cần thêm vài dòng code vào functions.php (hoặc file riêng), là email gửi đi ổn định, hạn chế vào spam rõ rệt.

Trong bài viết này, mình sẽ chia sẻ lại cách gửi email SMTP trong WordPress không dùng plugin, kèm giải thích từng phần để bạn dễ hiểu và dễ áp dụng, kể cả khi bạn không phải là dân code chuyên sâu. Vô bài nha!

SMTP là gì?

SMTP (Simple Mail Transfer Protocol) là giao thức chuẩn dựa trên TCP/IP, được sử dụng để truyền tải thư điện tử (email) trên Internet. Đây là nền tảng cốt lõi giúp email có thể được gửi từ máy chủ này sang máy chủ khác một cách thống nhất và ổn định.

SMTP lần đầu được định nghĩa vào năm 1982 theo tiêu chuẩn RFC 821, và sau đó được cập nhật, mở rộng thành RFC 5321 vào năm 2008. Phiên bản này bổ sung nhiều cơ chế xác thực và bảo mật, trở thành chuẩn SMTP mở rộng được sử dụng phổ biến cho đến ngày nay.

SMTP

Hiện nay, hầu hết máy chủ thư (mail server) và mail transfer agent (MTA) đều sử dụng SMTP để gửi và nhận email. Ngay cả các hệ thống email độc quyền như Microsoft Exchange, IBM Notes, hay các dịch vụ webmail phổ biến như Outlook.com, Gmail, Yahoo! Mail… dù có thể dùng giao thức riêng trong nội bộ, nhưng khi giao tiếp email ra bên ngoài hệ thống, tất cả đều bắt buộc sử dụng SMTP.

SMTP chính là giao thức tiêu chuẩn giúp email được gửi đi trên Internet, bất kể bạn đang dùng website WordPress, email doanh nghiệp hay các dịch vụ mail phổ biến hiện nay.

Cấu hình thông tin SMTP: Truy cập phần cài đặt SMTP Server mà nhà cung cấp cung cấp. Bạn cần nhập các thông tin cơ bản như:

  • SMTP Server: Ví dụ smtp.gmail.com
  • Port: Thông thường là 25, 465 (SSL) hoặc 587 (TLS)
  • Mã hóa: Chọn SSL/TLS để bảo mật đường truyền
  • Tên người dùng và mật khẩu: Là thông tin đăng nhập mail (pass là mật khẩu ứng dụng tạo trong mail, khác pass mail)

Hướng dẫn gửi email SMTP trong WordPress không dùng plugin

Mỗi nhà cung cấp dịch vụ email sẽ có cách cấu hình SMTP khác nhau. Trong phạm vi bài viết này, mình sẽ hướng dẫn cấu hình SMTP với Gmail – dịch vụ email phổ biến, dễ dùng và được rất nhiều website WordPress lựa chọn.

Hướng dẫn gửi email SMTP trong WordPress không dùng plugin
Hướng dẫn gửi email SMTP trong WordPress không dùng plugin

Dưới đây là những thông tin SMTP Gmail bạn cần chuẩn bị trước khi cấu hình. Mình khuyên bạn nên chuẩn bị sẵn để quá trình cài đặt diễn ra nhanh và không bị gián đoạn.

Bước 1: Chuẩn bị thông tin SMTP Gmail

Để gửi email qua Gmail bằng SMTP, bạn cần các thông tin sau:

  • SMTP Server: smtp.gmail.com

  • SMTP Username: Địa chỉ email Gmail dùng để gửi mail
    (ví dụ: thietkewebkw@gmail.com)

  • SMTP Password: Mật khẩu ứng dụng (App Password) do Gmail cấp
    (không nên dùng mật khẩu Gmail thông thường)

  • SMTP Port: 465

  • Bảo mật: SSL (bắt buộc)

Hiện tại Gmail không còn cho phép đăng nhập SMTP bằng mật khẩu thường, bạn cần bật xác minh 2 bước và tạo App Password để gửi mail ổn định, tránh lỗi xác thực hoặc bị Google chặn.

Bạn vào truy cập vào hosting rồi tới file wp-config.php dán đoạn code ở dưới vào.

Lưu ý: Thêm trên dòng  /* That’s all, stop editing! Happy publishing. */


/** SMTP Gmail - Khaweb */
define('KHAWEB_SMTP_HOST', 'smtp.gmail.com');
define('KHAWEB_SMTP_PORT', 465);
define('KHAWEB_SMTP_USER', 'yourgmail@gmail.com');
define('KHAWEB_SMTP_PASS', 'your_app_password');
define('KHAWEB_SMTP_FROM', 'yourgmail@gmail.com');
define('KHAWEB_SMTP_FROM_NAME', 'Ten Thuong Hieu Cua Ban');
define('KHAWEB_SMTP_SECURE', 'ssl');


📌 Xem thêm: Hướng dẫn tạo mật khẩu ứng dụng cho Gmail

Bước 2: Thêm code SMTP bảo mật trong functions.php

Bạn truy cập vào theme đang active rồi tới file functions.php để dán code này vào là được.

function khaweb_secure_smtp_setup( $phpmailer ) {

    // Chỉ chạy ở frontend & khi có SMTP config
    if (
        is_admin() ||
        ! defined('KHAWEB_SMTP_USER') ||
        ! defined('KHAWEB_SMTP_PASS')
    ) {
        return;
    }

    // Ép kiểu an toàn
    if ( ! $phpmailer instanceof PHPMailer\PHPMailer\PHPMailer ) {
        return;
    }

    $phpmailer->isSMTP();
    $phpmailer->Host       = KHAWEB_SMTP_HOST;
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = KHAWEB_SMTP_PORT;
    $phpmailer->Username   = KHAWEB_SMTP_USER;
    $phpmailer->Password   = KHAWEB_SMTP_PASS;
    $phpmailer->SMTPSecure = KHAWEB_SMTP_SECURE;

    // From phải trùng SMTP user (tránh spam)
    $phpmailer->setFrom(
        KHAWEB_SMTP_FROM,
        KHAWEB_SMTP_FROM_NAME,
        false
    );

    // Disable debug trên production
    $phpmailer->SMTPDebug = 0;

}
add_action( 'phpmailer_init', 'khaweb_secure_smtp_setup' );

Như vậy là xong. Xem kết quả ở dưới nha!

Kết luận

Việc cấu hình SMTP trực tiếp bằng code giúp WordPress gửi email ổn định hơn, hạn chế tình trạng thất lạc mail và rơi vào spam. Tuy nhiên, để đảm bảo an toàn và dễ bảo trì lâu dài, không nên hard-code thông tin SMTP trực tiếp trong theme hoặc plugin.

Phiên bản cấu hình bảo mật hơn bằng cách tách thông tin nhạy cảm sang wp-config.php, sử dụng prefix rõ ràng và kiểm soát điều kiện thực thi giúp:

  • Giảm rủi ro lộ email, mật khẩu ứng dụng

  • Dễ dàng thay đổi cấu hình khi cần

  • Giữ code gọn, chuẩn WordPress và thân thiện với môi trường production

Tóm lại, nếu bạn là người có kiến thức kỹ thuật và muốn tối ưu bảo mật, hiệu suất và khả năng kiểm soát, việc cấu hình SMTP bằng code theo hướng an toàn là một giải pháp hợp lý. Với các website có nhu cầu gửi email lớn hoặc cần theo dõi log chi tiết, bạn nên cân nhắc sử dụng SMTP service chuyên dụng để đảm bảo tính ổn định và khả năng mở rộng.

Hy vọng qua hướng dẫn này, bạn sẽ áp dụng thành công để giúp website thân thiện hơn, mượt mà hơn và tạo ấn tượng tốt hơn với người dùng. Nếu thấy nội dung có giá trị, đừng quên đánh giá 5 sao để tiếp thêm động lực cho KHAWEB tiếp tục chia sẻ nhiều bài viết chất lượng hơn.

4.9/5 - (39 bình chọn)
Nguyễn Kha

Với hơn 5 năm kinh nghiệm về lĩnh vực Thiết Kế Website và hơn 6 năm trong lĩnh vực Quảng cáo Google & Facebook. Bắt đầu từ năm 2019 tôi đẩy mạnh thương hiệu KHAWEB để khách hàng biết đến dịch vụ nhiều hơn. Tôi chuyên trong các lĩnh vực như: Thiết kế website, Chăm sóc website, Quảng cáo Google Ads, Facebook Ads...

guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Zalo