Hướng Dẫn Sử Dụng Amazon SES SMTP để Gửi Email Từ Wordpress

Hướng dẫn cách tạo và làm chủ Amazon SES SMTP để gửi email từ WordPress hoặc các nền tảng khác thay vì dùng Gmail SMTP miễn phí.

PHP Email của WordPress mặc định dường như vô dụng trong mọi tình huống khi mọi email đều vào thư mục SPAM vì thiếu kết nối bảo mật và xác nhận người gửi từ domain.

Hầu hết mọi người thường thay thế bằng Gmail SMTP miễn phí. Tuy giải pháp này có vẻ hấp dẫn vì bạn không tốn phí, nhưng khi dùng lâu bạn sẽ nhận ra nó không ổn như bạn đã nghĩ.

Như một thói quen, tôi luôn lựa chọn những giải pháp ăn chắc mặc bền lâu dài cho Blog của mình mà tôi khuyến khích bạn nên sử dụng ngay từ hôm nay. Đó chính là Amazon SES.

Amazon SES không chỉ giúp bạn gửi email từ WordPress mà còn gửi email từ rất nhiều nền tảng khác ngoài WordPress như Self-host Email Marketing (Sendy), Live Chat, Online Form, CRM,…và còn rất nhiều rất nhiều ứng dụng web mà sau này bạn sẽ cần đến một SMTP đáng tin cậy.

Dù nổi tiếng nhưng Amazon SES không dành cho người không chuyên vì khá phức tạp khi sử dụng lần đầu (Amazon AWS có quá nhiều công cụ). Đặc biệt là kỹ thuật.

Vì vậy bài viết này sẽ hướng dẫn bạn sử dụng Amazon SES SMTP với hi vọng bạn sẽ cung cấp thêm cho bạn kinh nghiệm để gạt bỏ được các rào cản kỹ thuật và tự mình kiểm soát được Amazon SES như ý muốn.

Tại sao Amazon SES lại phù hợp hơn so với các dịch vụ khác?

Đầu tiên tôi xin nói về Gmail và một số sai lầm khi bạn sử dụng.

Nếu bạn đang ám ảnh bởi sự MIỄN PHÍ của Gmail và dịch vụ email doanh nghiệp Gsuite thì bạn đã sai lầm khi cho rằng nó phù hợp để bạn sử dụng cho Blog WordPress của mình.

Bạn nên nhớ rằng Gmail (kể cả email doanh nghiệp Gsuite hay Office 360 của Microsoft) được thiết kế cho gửi email cá nhân thay vì gửi email đồng loạt.

Google và Microsoft đều cài đặt những giới hạn lên các tài khoản này nhằm mục đích phục vụ cho nhu cầu cá nhân hay doanh nghiệp để LIÊN HỆ là chính.

Gmail Smtp Limit
Giới hạn gửi email của Gsuite
Yandex Smtp Sending Limit
Giới hạn gửi email của Yandex

Chỉ với định hướng này tôi nghĩ bạn sẽ hiểu được tại sao bạn cần suy nghĩ đến một giải pháp khác đáng tin cậy và ổn định hơn cho tương lai lâu dài.

Nhu cầu của bạn đâu chỉ là có email doanh nghiệp để liên hệ, đúng không?

Bạn cần gửi email số lượng lớn kèm theo sự đảm bảo email vào inbox tốt nhất có thể. Bạn cần một hệ thống ổn định và đủ mạnh để đảm bảo lệnh gửi email phải hoàn thành. Bạn cần email có tên miền doanh nghiệp mà không lệ thuộc Gsuite. Bạn cần gửi email nhiều nhất với chi phí thấp nhất có thể.

Amazon SES đáp ứng những điều này cho bạn.

Tạm bỏ qua Gmail SMTP, chắc hẳn bạn cũng nghe nói đến các nền tảng khác như Mailgun, SendGrid, Mandrill,…

Mailgun thì gần đây đã bỏ gói miễn phí 10.000 email/tháng để chuyển sang tập trung vào các gói trà phí.

SendGrid thì dù có gói miễn phí với 100 email/ngày nhưng tôi không nghĩ bạn sẽ dùng đủ khi site phát triển sau này. Đến lúc đó bạn lại tốn thêm thời gian loay hoay tìm giải pháp mới.

Mandrill thì bị Mailchimp mua lại cách đây khá lâu và dường như chỉ ưu ái cho người dùng Mailchimp trả phí hơn là toàn bộ người dùng khác. Đã lâu rồi trên giang hồ không còn ai đề cập đến Mandrill nữa.

Khi xét về giá thì Amazon SES thật sự không có đối thủ với $0.1/1.000 email. Siêu rẻ, xứng đáng gắn bó lâu dài.

SMTP miễn phí hay “gần” miễn phí?

Nếu bạn tin rằng miễn phí là tiết kiệm hơn, là giải pháp tốt nhất thì tôi sẽ làm một bài toán nhỏ cho bạn thấy rằng Amazon SES cũng…Gần Như Miễn Phí.

Tôi sẽ đặt trường hợp bạn đang dùng SendGrid SMTP miễn phí hay Gmail SMTP miễn phí và gửi ít nhất 50 email/ngày và tối đa 100 email ngày.

Một năm bạn sẽ gửi tối đa 36.500 email cho hệ thống email WordPress. Chi phí cho 36.500 email của Amazon SES sẽ là từ $1.85 – $3.65/năm và gần bằng 85.000 VND/năm.

Có thể nói là gần như miễn phí vì quá rẻ. Dùng cả năm chỉ từ 44.000 – 85.000 VND. Thực tế còn thấp hơn như vậy.

Chưa kể nếu bạn đang dùng WordPress trên Host của Amazon EC2 thì bạn còn được khuyến mãi miễn phí 62.000 email/tháng.

Bạn sẽ chọn miễn phí với nhiều hạn chế hay trả phí ít nhưng cực kỳ ổn định và đáng tin cậy?

Hướng dẫn tạo tài khoản Amazon SES

Bài hướng dẫn này không mới vì bạn có thể tìm thấy trong các tài liệu hướng dẫn của Amazon chi tiết nhưng kèm theo rối. Tôi sẽ trình bày lại cho bạn theo quy trình đơn giản hơn.

Tạo tài khoản Amazon SES và thoát Sandbox

Tôi nghĩ ai cũng nên có một tài khoản Amazon vì trước sau gì bạn cũng sẽ sử dụng. Amazon có rất nhiều dịch vụ không chỉ Amazon SES.

Bạn đăng ký tài khoản tại đây và kích hoạt luôn bảo mật 2 lớp 2FA cho chắc. Bảo mật luôn là ưu tiên hàng đầu. Bạn không nên dùng bảo mật qua số điện thoại, thay vào đó là dùng Authy để quản lý (Một ứng dụng dùng cho mọi nền tảng tuyệt vời hơn Google Authorize nhiều).

Quá trình tạo tài khoản giống như các nền tảng khác. Sau khi đã có tài khoản Amazon bạn bắt đầu TÌM dịch vụ Amazon SES để đăng ký tại https://console.aws.amazon.com . Bạn đánh tên Simple Email Service hoặc SES vào thanh tìm kiếm là ra.

Tim Amazon Ses
Nhập “SES” vào khung tìm kiếm để tìm dịch vụ Simple Email Service

Bạn cần chú ý rằng Amazon quy định phân vùng server rất cẩn thận và nghiêm ngặt. Hiện Amazon SES chỉ có 6 phân vùng trải từ Âu-Á-Mỹ để chọn cho dịch vụ Amazon SES:

  1. US East (N. Virginia) us-east-1
  2. US West (Oregon) us-west-2
  3. Asia Pacific (Mumbai) ap-south-1
  4. Asia Pacific (Sydney) ap-southeast-2
  5. Europe (Frankfurt) eu-central-1
  6. Europe (Ireland) eu-west-1

Mỗi phân vùng sẽ ứng với tài khoản Amazon SES của bạn và subdomain tương ứng, mỗi lần chuyển phân vùng sẽ phải yêu cầu hỗ trợ để thoát SandBox (Chế độ chạy Demo, không gửi email được).

Dang O Che Do Sandbox
Chế độ Sanbox sẽ hạn chế gửi email của bạn (chế độ dùng thử)

Vì vậy, bạn nên xác định chính xác nhu cầu của mình để chọn phân vùng server chính xác. Nếu thị trường Việt Nam thì bạn nên chọn phần vùng Mumbai vì tối ưu chi phí và tốc độ (tốc độ nhanh gấp 3 lần US East). Ngược lại, nếu thị trường toàn cầu thì bạn chọn US East hey EU.

Nen Chon Mumbai Region
Chọn phân vùng Mumbai khi gửi email tại Việt Nam

Nếu chọn Mumbai Region thì bạn sẽ có subdomain như sau: https://ap-south-1.console.aws.amazon.com/

Xác nhận tên miền và địa chỉ email người gửi

Trước khi bạn xin hỗ trợ thoát Sandbox thì bạn nên xác nhận đầy đủ tên miền và địa chỉ email người gửi. Hỗ trợ kỹ thuật của Amazon sẽ nhìn vào đó để xét duyệt cho bạn nhanh hơn và dễ hơn.

Bạn nên dùng Cloudflare DNS để thao tác cho nhanh thay vì DNS Manager mặc định của nhà cung cấp tên miền.

Bạn cần thêm 5 DNS records mới mà Amazon hướng dẫn bạn khi bạn tiến hành xác nhận tên miền mới:

  1. Domain Verification Record (1 TXT record)
  2. DKIM record (3 CNAME record)
  3. Email Receiving Record (1 MX record). Bạn chỉ thêm record này trong trường hợp bạn chưa có bản ghi MX nào. Nếu bạn đã có bất cứ MX record nào thì bỏ qua record này. (Ví dụ bạn đã có MX Record của Yandex hay ImprovMX)
  4. SPF record (1 TXT record). Bước này không có trong hướng dẫn xác nhận tên miền của Amazon mà bạn phải tự tạo theo tài liệu của Amazon. Đây là record rất quan trọng bạn không thể không có, bạn đặc biệt chú ý. v=spf1 include:amazonses.com ~all (Cloudflare không cần ngoặc kép)
Hướng dẫn xác nhận tên miền (Domain Verify) với CloudFlare DNS
Chú Ý

DMARC record sẽ không cần vì DKIM đã hợp nhất với DMARC nên bạn sẽ không cần tạo thêm DMARC policy record nữa.

Với Cloudflare DNS bạn không cần bật đám mây màu cam nhé!

Bạn chỉ cần copy paste là chủ yếu vì Amazon đã tạo sẵn cho bạn gần như tất cả.

Vậy là bạn đã hoàn tất xác nhận Domain mới cho Amazon SES.

Bước tiếp theo, bạn cần xác nhận Địa chỉ email doanh nghiệp

Amazon đòi hỏi bạn đã có mailbox để nhận email xác nhận vì họ sẽ gửi một link xác nhận và bạn phải nhấp vào đó. Nghĩa là muốn tạo Amazon SMTP thì phải CÓ SẴN hộp mail doanh nghiệp để nhận email.

Hướng dẫn xác nhận địa chỉ email người gửi (Email Address Verify)

Bạn hãy dùng ImprovMX để có nhanh mailbox doanh nghiệp theo bài viết này: Cách tạo email tên miền nhanh chóng bằng ImprovMX. Với cách này bạn sẽ có hộp thư mailbox dựa vào Gmail trong 5 phút bằng phương pháp email forward.

Thoát Sandbox để bắt đầu gửi email

Mặc định Amazon sẽ không kích hoạt ngay tài khoản cho bạn để dùng mà bạn phải gửi Ticket để yêu cầu họ KÍCH HOẠT tài khoản. Họ đơn giản muốn kiểm soát các tài khoản spam.

Khi bạn trong tâm thế thật sự muốn dùng dịch vụ của họ thì việc phê duyệt tài khoản CHỈ LÀ CHUYỆN NHỎ.

Request Thoat Sandbox Cho Tai Khoan Amazon Ses
Bấm vào nút “Request a Sending Limit Increase” ở tab Sending Statistics

Như đã đề cập ở trên, bạn cần hoàn tất việc xác thực tên miền và địa chỉ email để chứng minh bạn muốn kinh doanh và là khách hàng tiềm năng. Bạn đã tăng khả năng phê duyệt thành công lên nhiều lần.

Trong phần gửi ticket yêu cầu mở khoá thì bạn cứ yêu cầu tối đa giới hạn để chứng mình bạn đã đọc qua phần tài liệu hướng dẫn của họ.

Tiếp theo là phần miêu tả việc sử dụng và kiểm soát email gửi đi, mục đích Amazon chỉ muốn kiểm tra xem bạn có dùng để spam hay không. Bạn chỉ cần tạo niềm tin là bạn có thể kiểm soát được việc gửi email chủ yếu để gửi newsletter, email marketing hay transaction email.

Họ đặc biệt “thành kiến” Affiliate Marketing, bạn không nên đề cập tới vì sẽ là cờ đỏ cho việc phê duyệt trở nên khó khăn hơn.

Bạn hãy tham khảo nội dung tôi dùng để gửi thông tin cho họ để phê duyệt như sau:

Amazon Ticket Sandbox Request
Nội dung Ticket tham khảo mà tôi gửi cho Amazon

Bạn không nên copy y chang nội dung như vậy, cần chỉnh sửa lại một chút để khác đi để Amazon tin tưởng nội dung bạn hơn.

Sau khi gửi xong ticket, bạn chờ trong vòng 24 giờ sẽ nhận được hồi âm đã phê duyệt xong. Bây giờ bạn đã có thể đem ra sử dụng!

Cách dùng Amazon SES SMTP tối ưu

Có 2 cách để bạn dùng dịch vụ Amazon SES cho blog của mình đó là dùng Amazon SES APISMTP credentials.

Bạn sẽ chọn cái nào?

Nhiều bạn chọn SMTP credentials với tên đăng nhập và password vì nó quen thuộc, dễ dàng sử dụng như bao tài khoản khác. Rất tiếc đây là cách dở nhất khi dùng bất cứ dịch vụ SMTP relay nào, không riêng gì Amazon, kể cả Sendgrid hay Mailgun.

Sức mạnh thật sự của các dịch vụ này là API.

API có lợi thế là nhiều chức năng hơn (phụ thuộc plugin sử dụng), nhanh hơn (không phải kiểm tra DNS), không bị trì hoãn thực thi (không phải check ISP), đạt được tốc độ gửi tối đa của dịch vụ và không bị chặn bởi hosting của bạn (thông thường chỉ cho bạn gửi 300 emails/giờ).

Khi bạn gửi hàng nghìn email bằng WordPress (gửi newsletters) thì bạn mới thấy rằng tốc độ gửi quan trong như thế nào.

Amazon gửi 14 email/giây = 50.400 email/giờ, rất khủng.

Vì vậy, cách tối ưu nhất để bạn dùng Amazon SES là sử dụng Amazon SES API.

Tuy nhiên, tôi sẽ hướng dẫn bạn cả 2 cách để bạn luôn linh động.

Cách #1: Tạo SMTP credentials (Dùng User và Password)
Cách #2: Tạo Amazon IAM (Dùng API) – Bấm vào đây để tạo IAM User mới

Dùng Amazon SES trên WordPress

Cái này phải nói là dễ nhất bởi vì có rất nhiều plugin khác nhau để bạn cài đặt sử dụng, các plugin này sẽ yêu cầu bạn dùng API hay SMTP credentials như tôi hướng dẫn ở trên.

Tôi khuyến khích dùng POST SMTP Plugin vì đây là plugin cực kỳ tốt và miễn phí.

POST SMTP Mailer – Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress

POST SMTP có thệm email log và fallback cực kỳ lợi hại để luôn đảm bảo bạn có tỷ lệ email gửi đi thành công cao nhất và đồng thời kiểm soát được nó (email log là lịch sử gửi email).

Tuy vậy, đáng tiếc là nó không hỗ trợ Amazon SES API, bạn có thể dùng SMTP credentials để dùng. Tương lai gần sẽ hỗ trợ Amazon SES API (đã được Developer xác nhận).

Còn nếu không cứ WP SMTP plugin mà dùng.

WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin

Có một lưu ý nhỏ mà bạn phải nhớ khi dùng SMTP credentials

Port 465 luôn đi với SSLPort 587 luôn đi với TLS. Bạn thích dùng cái nào cũng được với WordPress, không vấn đề gì, nhưng không được nhầm lẫn sẽ không thể gửi email được.

Kiểm soát “sức khoẻ” cho email Amazon SES?

Healthy Reputation Cua Amazon Ses
Amazon Healthy Dashboard của bạn

Bất cứ dịch vụ nào liên quan đến email cũng luôn theo dõi IP mà họ cung cấp cho bạn sử dụng. Amazon SES cung cấp cho bạn một shared IP để dùng chung với các người dùng khác nên vì vậy nếu bạn gây hại đến IP dùng chung này thì bạn ngay lập tức sẽ bị Amazon đình chỉ sử dụng TỰ ĐỘNG.

Khi đó bạn phải nhờ hỗ trợ và gửi ticket giải trình, rất khó khăn.

Vậy điều gì khiến Amazon lại nghĩ bạn đang gây hại đến IP của họ?

Các chỉ số mà Amazon luôn theo dõi chặt chẽ

Đây là các chỉ số thông tin mà hệ thống của Amazon luôn theo dõi. Chính vì nó quan trọng nên họ luôn ưu tiên đặt ngay Dashboard của bạn với hi vọng bạn luôn chú ý đến nó. Các chỉ số này cũng áp dụng cho các dịch vụ khác tương tự Amazon như Sendgrid hay Mailgun.

Amazon Ses Metrics
  1. Bounce rate (Tỷ lệ email bị trả về)Khác với bounce rate bạn theo dõi ở Google Anlytics là tỷ lệ thoát trang, bounce rate của email là tỷ lệ email bị trả về hay còn gọi là GỬI KHÔNG ĐƯỢC. Có 2 loại bounce rate sau:
    • Hard bounce: Trả về vì email người nhận không tồn tại. Amazonsẽ không cố gắng gửi lại lần nào nữa với hard bounce. Chỉ số này đặc biệt quan trọng vì hệ thống Amazon sẽ ngay lập tức đình chỉ tài khoản gửi của bạn khi tỷ lệ hard bounce rate cao hơn 10%. Bounce rate lý tưởng là dưới 5%.
    • Soft bounce: Trả về vì email tạm thời không gửi được vì một số nguyên nhân như mailbox người nhận đã đầy, quá nhiều liên kết nên bị quá tải tại thời điểm gửi,…trong trường hợp này Amazon sẽ cố gắng gửi lại nhưng nếu vẫn không thể đến mailbox người nhận thì sẽ dừng gửi. May mắn là Amazon không tính soft bounce rate. Hard bounce rate sẽ là chỉ số chính mà bạn cần quan tâm.
  2. Complaint rate (Tỷ lệ than phiền của người nhận)Amazon sẽ đình chỉ email bạn khi tỷ lệ than phiền trên 0.1%.Khi người nhận email bấm vào nút Mark as Spam (Gmail) để cho các email bạn gửi vào thư mục Spam thì xem như là 1 Complaint.
  3. Suppression List (Danh sách email tạm thời không gửi được)Đây là danh sách được Amazon tạo ra tạm thời trong 14 ngày vì lỗi hard bounce. Amazon sẽ chặn bạn gửi đến người nhận có trong danh sách Suppression List này. Bạn cũng có thể gửi yêu cầu hủy Suppression List nếu muốn bằng support ticket.

Các gợi ý để tài khoản email của bạn luôn khỏe mạnh

Có thể nói Amazon ghét hard bounce, địa chỉ email người nhận không tồn tại (spammer email). Để tránh spammer email bạn phải chống spam cho WordPress của mình như form đăng ký phải có Anti-spam (Google reCaptcha) hoặc Double Opt-in (như Mailchimp hay dùng).

Nếu bạn muốn dùng WordPress để gửi email newsletter từ một list có sẵn đâu đó thì phải đảm bảo rằng bạn đã Clean List trước khi gửi. Thao tác này giúp loại bỏ các email không tồn tại.

Amazon cũng không thích người dùng báo Spam, một khi người dùng bấm vào nút Mark As Spam thì thông tin người gửi liên quan bao gồm IP và domain của bạn sẽ bị một cờ đỏ của tổ chức ISP (Internet Service Provider). Để hạn chế việc này, bạn luôn phải đảm bảo thêm link Hủy đăng ký ở mỗi email tiếp thị gửi đi (các loại email khác không cần).

Thêm một điều nữa, Amazon ghét Affiliate Marketing, nếu bạn đính kèm các link trong mail từ một tên miền đã bị Blacklist thì xem như bạn có khả năng cao bị đình chỉ tài khoản. Cách tốt nhất là chỉ nên luôn đính kèm link tên miền của mình trong email mà thôi.

Lời kết…

Đơn giản mà nói thì bạn cần hiểu rằng email doanh nghiệp dùng cho trao đổi thông tin (enterprise mailbox) thì không nên dùng để gửi email thông báo hay email marketing. Hãy để đó cho các dịch vụ SMTP như Amazon SES, đúng chức năng sử dụng.

Chia sẻ thêm là Google đang có quá nhiều ảnh hưởng trên thế giới Internet bởi các dịch vụ miễn phí và sức mạnh công nghệ của họ. Những công ty có tầm ảnh hưởng quá lớn như vậy thường tôi cũng sẽ đưa vào… Danh sách cảnh giác của mình. Kể cả Amazon, Microsoft, Apple,…

Không nên để hết tất cả trứng vào một giỏ. Tôi thường chia nhỏ các dịch vụ để dùng và luôn dè chừng những dịch vụ ĐỘC QUYỀN TỰ NHIÊN.

Amazon SES thật sự tốt, nhưng tôi vẫn luôn backup Mailgun và Sendgrid SMTP để đề phòng CÓ BIẾN.

Trong quá trình thực hiện nếu bạn gặp vấn đề gì hãy để lại bình luận bên dưới tôi sẽ hỗ trợ bạn.

Từ khóa » Email Của Amazon