Cấu hình gửi mail WordPress bằng SMTP

by admincp
40 Xem

Giới thiệu chung

Thỉnh thoảng contact form 7 gửi email đi từ WordPress bị lỗi? bạn có thể mất những thông báo quan trọng khác từ website WordPress như thông báo cập nhật plugins.. Trong bài viết này mình sẽ hướng dẫn cách cấu hình gửi mail với SMTP.

Mặc định, WordPress sử dụng hàm PHP mail để gửi email, vì hầu hết lưu trữ share hosting không được cấu hình server gửi email do đó bạn không thể sử dụng hàm mail trong PHP. Đây là lỗi wordpress phổ biến.

Hiện nay, nhiều dịch vụ gửi mail sử dụng nhiều công cụ để giảm thiểu email rác, các công cụ này thường phát hiện email được gửi từ các nơi bị giới hạn khu vực địa lý & cài đặt này tác động đến trang web WordPress của bạn. Đó là lý do tại sao chúng ta cần sử dụng SMTP để gửi email trong WordPress

SMTP viết tắt bởi (Simple Mail Transfer Protocol), khác với hàm PHP mail SMTP đáng tin cậy hơn nhiều vì sử dụng tài khoản email có xác minh thông qua các dịch vụ email như gmail, sendgrid,…thay vì sử dụng hàm mail trong PHP.

Có một vài cách bạn có thể thực thi SMTP trên blog WordPress, bạn không khó để chọn một plugin SMTP tốt nhất. Nếu bạn cũng muốn gửi email bản tin và có một lượng lớn các nội dung trên form sẽ gửi hàng ngày, bạn có thể xem xét sử dụng một trong 2 dịch vụ mail là Mailgun hoặc SendGrid.

Nếu bạn có một blog nhỏ hoặc website có gửi mail dưới 1000 emails mỗi tháng, bạn có thể sử dụng gmail để gửi mail trong WordPress.

Bằng cách sử dụng tài khoản gmail của bạn, trong mỗi chúng ta ai cũng có tài khoản google, điều này rất phổ biến.

Chú ý: mật khẩu gmail sẽ được lưu trong WordPress, nó cho phép người khác có thể xem mật khẩu của bạn, điều này bạn nên thận trọng. Nhưng đừng lo lắng các giải pháp dưới đây bạn sẽ biết cách dữ bảo mật thông tin nhậy cảm này.

Bạn muốn sử dụng miễn phí địa chỉ email như gmail, yahoo, hay Hotmail để gửi email trong WordPress? Plugin WP Mail SMTP hoặc WP SMTP là một lựa chọn khác cho bạn sử dụng SMTP trên website hoàn hảo, sử dụng miễn phí. Trong bài hôm nay mình sẽ sử dụng plugin miễn phí này để gửi email thông báo từ form liên hệ của WordPress, với bước cài đặt đơn giản cho mọi tài khoản email.

Cài đặt & cấu hình WP Mail SMTP

Trước tiên, bạn cần cài đặt & kích hoạt plugin WP Mail SMTP. Sau khi plugin được kích hoạt thành công, bạn vào Settings » WP Mail SMTP để cấu hình gửi mail.

Trường đầu tiên bạn nhập From Email, là địa chỉ email sẽ hiển thị như người gửi đến trong hòm thư email.

Lưu ý: đảm bảo nhập đúng email bạn sẽ sử dụng để gửi SMTP email , đó là địa chỉ email Yahoo, gmail, live email của bạn.

Bạn cũng nên chọn tùy chọn Force From Email.

Tiếp theo, bạn chọn tên người gửi “From Name”. Mặc định trường này thiết lập trùng với tên site, Tuy nhiên bạn có thể chọn một tên thay thế khác. Nếu bạn bật tùy chọn “Force From name”, nó sẽ áp dụng cho tất cả các emails và các plugin sửa cấu hình email khác sẽ không có tác dụng trong WordPress của bạn.

Trường Mailer, mình sẽ chọn Other SMTP. Chú ý, có thêm tùy chọn Return Path, nếu bạn bật Set the return-path to match the From Email bạn sẽ nhận thông báo nếu có bất kỳ email nào được gửi đi gặp lỗi.

Cấu hình SMTP

Khi bạn chọn “Other SMTP”, plugin sẽ hiển thị các trường cho bạn điều thông tin chi tiết cho SMTP. Ở đây chúng ta cần nhập thông tin kết nối vào dịch SMTP của nhà cung cấp email của bạn. Mỗi dịch vụ mail sẽ có tùy chọn khác nhau, trong bài này mình sử dụng Gmail, Yahoo & Hotmail.

Hãy nhớ rằng khi bạn lưu tên người dùng, mật khẩu cho mọi cấu hình email của plugin, chúng được lưu trực tiếp trên website của. Do vậy để tăng tính bảo mật, plugin cho thêm tùy chọn lưu mật khẩu SMTP vào file wp-config.php

Gmail SMTP:

Nếu bạn muốn sử dụng tài khoản gmail hoặc G Suite làm thông tin kết nối SMTP, có thể sử dụng cấu hình SMTP dưới đây:

  • SMTP Host: smtp.gmail.com
  • SMTP Port: 465
  • Encryption: Use SSL encryption
  • Authentication: Yes: Use SMTP authentication.

Yahoo SMTP

Thông tin kết nối SMTP cho tài khoản Yahoo mail:

  • SMTP Host: smtp.mail.yahoo.com
  • SMTP Port: 465
  • Encryption: Use SSL encryption
  • Authentication: Yes: Use SMTP authentication.

Live/Hotmail SMTP

Tài khoản Hotmail cho bạn thông tin SMTP sẽ như sau:

  • SMTP Host: smtp.live.com
  • SMTP Port: 587
  • Encryption: Use TLS encryption
  • Authentication: Yes: Use SMTP authentication.

Bạn tên người dùng & mật khẩu cho một trong các dịch vụ SMTP trên và nhấn nút Save Changes.

Kích hoạt “Less Secure Apps”

Để sử dụng tài khoản SMTP gửi email bạn cần bật chế độ ‘less secure apps’ trên tài khoản email của bạn. Hãy xem chi tiết cách kích hoạt tính năng này cho các dịch vụ email theo các bước dưới đây.

Less Secure Apps với Gmail

Để kích hoạt mật khẩu ứng dụng trên gmail, bạn đăng nhập vào gmail/G Suite sau đó truy cập liên kết này & bật tùy chọn “Access for less secure apps”.

Vì liên quan đến bảo mật, đôi khi gmail có thể tự động khóa đăng nhập từ SMTP, thậm trí đã bật lesssecureapps trước đó. Nếu sẩy ra điều này, một email khác xác nhận ai đó đã đăng nhập vào email của bạn trái phép giống như thế này.

Để loại bỏ & hợp lệ hành động này bạn nhấn vào “Review Your Devices Now” hoặc truy cập trang https://myaccount.google.com/device-activity và làm theo hướng dẫn để google hiểu đó là bạn.

Less Secure Apps với Yahoo

Để kích hoạt, bạn đăng nhập vào tài khoản Yahoo & nhấn vào cài đặt bảo mật tài khoản. GIờ bạn cần bật tùy chọn “Allow apps that use less secure sign-in”. Khi bạn thấy nút chuyển sang mầu xanh là thành công.

Less Secure Apps với Live/Hotmail

Nếu bạn sử dụng email với Live/Hotmail bạn sẽ không có tùy chỉnh “less secure apps” cho cài đặt SMTP.

Test gửi Mail

Sau khi cấu hình SMTP hoàn tất, bạn cần kiểm tra thông tin kết nối SMTP đã chắc chắn hoạt động. Để thực hiện, chúng ta nhấn vào tab “Email Test” như trong hình.

Nhập email nhận và nhấn nút Send Email, chờ một lát nếu bạn thấy hình sau là email đã gửi thành công.

Nếu có lỗi xẩy ra, bạn cần kiểm tra lại mật khẩu của email và lưu lại thông tin này hoặc để chắc chắn bạn lưu thông tin mật khẩu SMTP vào tệp wp-config.php

define('WPMS_ON', true);
define('WPMS_SMTP_PASS', 'mat-khau-cua-ban');

Chèn code trên vào file functions.php và thử lại, email sẽ gửi thành công.

Lỗi SMTP

Đôi khi bạn gặp lỗi không thể gửi mail sử dụng tài khoản SMTP của google, yahoo. Nguyên nhân có thể do Hosting của bạn chặn port 587,25,465 , để kiểm tra hosting của bạn có chặn các cổng này hay không bạn sử dụng đoạn code sau đây:

<?php
	//gmail-smtp-msa.l.google.com
	$fp = fsockopen('smtp.gmail.com', 587, $errno, $errstr, 600);
	if (!$fp) {
		// port is closed or blocked
		echo 'closed';
	} else {
		// port is open and available
		echo 'open';
		fclose($fp);
	}

Kiểm tra bạn sử dụng đúng tài khoản SMTP với google/yahoo/live mail. Cách tốt nhất là bạn chạy thử trên localhost, vì đó là môi trường develop sẽ không chặn bởi firewall. Chúng ta có thể sử dụng plugin WP Mail SMTP .

Nếu bạn chạy thử trên localhost có thể gửi mail không thành công. Đây là lỗi thiết lập kết nối SSL, có thể do lỗi xác minh SSL chưa cài đặt trên máy chủ web localhost. Bạn cần tắt xác minh SSL với phiên bản PHP 5.6+ bằng cách sử dụng đoạn code dưới đây:

add_filter('wp_mail_smtp_custom_options', function( $phpmailer ) {
    $phpmailer->SMTPOptions = array(
        'ssl' => array(
            'verify_peer'       => false,
            'verify_peer_name'  => false,
            'allow_self_signed' => true
        )
    );
     
    return $phpmailer;
} );

Sau khi mình nhấn nút test trên giao diện trên WP Mail SMTP, thì gặp lỗi này Error due to unsolicited and/or bulk e-mail. This means the connection to your SMTP host was made successfully, but the host rejected the email.. Lỗi này có nghĩa, kết nối vào SMTP server thành công nhưng web hosting từ chối tài khoản email. Nếu bạn lỗi tương tự như mình, rất có thể email của bạn đã bị đánh dấu spam.

Để khắc phục bạn thử đổi sang sử dụng port khác, vd: 465, 587, 25. Xem chi tiết thông tin SMTP của gmail, yahoo..

Nếu lỗi này vẫn không được khắc phục & nhà cung cấp hosting của bạn không thể xác minh qua máy chủ SMTP riêng, chúng ta có một thêm một cách khác không sử dụng giao thức SMTP. Hiện nay có nhiều dịch vụ gửi mail thông qua API như sendgrid, smtp. Cách thức này sẽ vượt trội hơn so với giao thức SMTP. Mọi sử lý sẽ gửi ở dạng Service , tức là bạn không không mất thời chờ đợi trước khi mail được gửi. Đó là lợi ý của việc sử dụng hàng đợi Queued. Nếu bạn có nhu cầu thiết kế website wordpress tích hợp gửi mail API, hãy liên hệ với Hoàng nhé.

Trong bài viết này mình sử dụng Mailgun, một trong số dịch vụ mail tốt nhất hiện nay. Tại trang cấu hình plugin WP Mail SMTP, bạn chọn “Mailgun” tại mục “Mailer”. Chúng ta cần điền 2 thông số Private API Key & Domain Name

Để lấy thông tin này, bạn đăng nhập vào tài khoản mailgun, sau đó vào menu Security hoặc sử dụng link https://app.mailgun.com/app/account/security. Copy chuỗi ‘Private API Key’

Tiếp đến, bạn chọn một trong các domains có sử dụng trong mailgun ở trang https://app.mailgun.com/app/domains

Sau khi điền đầy đủ thông tin của mailgun, bạn nhấn nút Lưu. Ok, sau khi sử dụng dịch vụ mailgun mình sẽ sửa được lỗi gửi mail, bạn có thể chuyển sang tab “Email test” để kiểm tra.

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

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

Bài viết liên quan

Leave a Comment