Khi được giao nhiệm vụ cấu hình mailer cho dự án, ban đầu tôi nghĩ đơn giản chỉ là cấu hình môi trường và Action Mailer. Tuy nhiên, thực tế có rất nhiều cách để gửi email đến người dùng, tùy thuộc vào quy mô và mức độ quan trọng của việc gửi mail trong ứng dụng. Bài viết này sẽ tóm tắt quá trình tìm hiểu và áp dụng SendGrid vào dự án, giúp bạn gửi email một cách thuận tiện và hiệu quả.
Action Mailer là nền tảng cơ bản cần nắm vững để hiểu rõ các bước gửi mail. Bên cạnh đó, có nhiều dịch vụ hỗ trợ gửi mail hiệu quả hơn như SendGrid Web API hoặc SMTP Relay, Mandrill, Active Jobs and Delayed Job, Mailgun API và SMTP. SendGrid là một trong số đó.
Mục Lục
SendGrid là gì?
Thông thường, chúng ta sử dụng thông tin SMTP của hosting để gửi email thông báo. Tuy nhiên, do IP hosting dùng chung với nhiều website khác, khả năng bị blacklist và email bị chuyển vào spam rất cao. Thậm chí, một số nhà cung cấp còn chặn gửi mail để bảo vệ server.
SMTP Server (server dùng để gửi mail) là dịch vụ cho phép gửi email số lượng lớn, vào inbox mà không bị spam, tốc độ nhanh và không bị giới hạn như Gmail hay mail đi kèm hosting.
SendGrid là một trong những dịch vụ nổi tiếng cung cấp email giao dịch (transactional email). SendGrid cung cấp giải pháp email dựa trên nền tảng đám mây, thay thế cho hệ thống email truyền thống, giúp bạn không cần xây dựng, mở rộng và duy trì hệ thống mail server. Tóm lại, SendGrid là một dịch vụ gửi email, đóng vai trò là server cho việc gửi mail của bạn.
Sử dụng SendGrid có tốn phí không?
SendGrid có nhiều gói dịch vụ với giá khác nhau. Gói giá càng cao, số lượng email gửi được càng nhiều, quản lý nhiều contact và tỉ lệ vào inbox càng cao. Trước đây, SendGrid cho phép sử dụng miễn phí với giới hạn 12,000 email/tháng, nhưng hiện tại chỉ có thể dùng thử miễn phí 1 tháng, với tối đa 40,000 email trong 30 ngày đầu. Sau đó, phí mỗi tháng từ 9.95$, tùy thuộc vào số lượng email muốn gửi.
Với chất lượng ổn định và khả năng gửi mail vào inbox cao, SendGrid được nhiều blogger và doanh nghiệp tin tưởng sử dụng.
Cách sử dụng SendGrid để gửi mail
SendGrid cung cấp hai cách để gửi email: qua SMTP relay hoặc qua API Web. Mỗi loại có ưu điểm riêng.
Bạn có thể tích hợp SendGrid với ứng dụng hiện có. Thiết lập ứng dụng để sử dụng relay SMTP của SendGrid là dễ nhất, vì chỉ cần sửa đổi cấu hình SMTP. Tuy nhiên, SendGrid API cũng có nhiều hỗ trợ.
Các bước thiết lập SendGrid qua API Web
1. Tạo tài khoản và xác thực Sender Email
Truy cập SendGrid để đăng ký tài khoản miễn phí. Lưu ý rằng việc đăng ký tài khoản SendGrid ở Việt Nam có thể gặp khó khăn, đặc biệt khi sử dụng email thông thường như @gmail.com, @yahoo.com. Bạn có thể nhận được thông báo account high risk và cần gửi email tới bộ phận hỗ trợ để xác thực và kích hoạt thủ công.
Nhấn vào “Try for Free”.
Nút Try for Free trên trang đăng ký SendGrid
Sau đó, điền thông tin cá nhân và nhấn “Create Account”. Nên sử dụng email tên miền riêng để tăng khả năng thành công và tài khoản được kích hoạt tự động trong vài phút.
Ngay sau đó, bạn sẽ nhận được email yêu cầu xác nhận. Nhấn “Confirm Email Address”.
Email xác nhận từ SendGrid
Bạn sẽ được chuyển đến trang “About You”. Nhập thông tin cá nhân, lưu ý hai dữ liệu quan trọng là domain (điền domain bạn sở hữu để tiện xác minh sau này) và chọn sử dụng dịch vụ bằng API và ứng dụng tạo chiến dịch trên web.
Form điền thông tin cá nhân trên SendGrid
2. Tạo API Key
API Key là một chuỗi xác thực thay mặt cho tài khoản (tên đăng nhập và mật khẩu) để sử dụng các tính năng của SendGrid. API Key thường dùng trong các phần mềm bên thứ ba để kết nối tới SendGrid. Bạn có thể tạo API Key và cài đặt quyền hạn cho nó.
Sau khi đăng ký thành công tài khoản SendGrid, đăng nhập và vào trang Dashboard. Chọn mục “API Keys” -> ở góc phải màn hình, chọn “Create API key”. Click vào “General API key”.
Nút Create API Key trên trang Dashboard của SendGrid
API Key được tạo là một chuỗi duy nhất và không hiển thị lại, vì vậy bạn cần lưu trữ ở nơi an toàn và không chia sẻ với người khác. Việc bảo mật API Key là vô cùng quan trọng để tránh bị lạm dụng tài khoản và ảnh hưởng đến uy tín của bạn.
3. Xác thực tên miền (Domain Authentication)
Xác thực domain (tên miền) tức là khai báo Whitelabels trong SendGrid. Xác thực domain cho phép bạn gửi email qua tên miền của bạn thay vì SendGrid (mặc định). Điều này cải thiện sự gắn kết giữa thông tin gửi (header email) và nội dung gửi, giúp cải thiện khả năng phân phối email của bạn.
Sử dụng SendGrid API Web trong Ruby
Để sử dụng SendGrid trong Ruby, bạn cần dùng gem sendgrid-ruby:
gem "sendgrid-ruby"
Sau khi cài đặt gem, bạn có thể sử dụng các tiện ích mà SendGrid API cung cấp. Dưới đây là một ví dụ về cách sử dụng:
require "sendgrid-ruby"
class UserMailer < ApplicationMailer
def send_mail(user, subject, content_value)
from = SendGrid::Email.new(email: "[email protected]")
to = SendGrid::Email.new(email: user.email)
content = SendGrid::Content.new(type: "text/plain", value: content_value)
mail = SendGrid::Mail.new(from, subject, to, content)
unless Rails.env.production?
mail_settings = SendGrid::MailSettings.new
sandbox_mode = SendGrid::SandBoxMode.new(enable: true)
mail_settings.sandbox_mode = sandbox_mode
mail.mail_settings = mail_settings
end
sg = SendGrid::API.new(api_key: ENV["SENDGRID_API_KEY"])
response = sg.client.mail._("send").post(request_body: mail.to_json)
end
end
Trong ví dụ trên, SandBoxMode được sử dụng để thiết lập chế độ gửi mail. Trong môi trường production, hệ thống sẽ gửi mail thật đến người dùng. Trong môi trường dev và test, khi SandBoxMode là true, sẽ không có mail nào được gửi đi.
Sandbox mode is only used to validate your request. The email will never be delivered while this feature is enabled!
Để hiểu rõ hơn về SandBox, bạn có thể tham khảo thêm tại tài liệu của SendGrid.
SendGrid còn hỗ trợ cấu hình content mail, template mail, … Để tìm hiểu rõ hơn, bạn có thể tham khảo tài liệu của SendGrid.
Kết luận
Bài viết này cung cấp hướng dẫn chi tiết về cách cấu hình SendGrid để gửi email hiệu quả, từ tạo tài khoản, xác thực tên miền đến sử dụng API Web trong Ruby. Hy vọng bài viết sẽ giúp bạn dễ dàng tích hợp SendGrid vào dự án của mình và cải thiện khả năng gửi email.
Tài liệu tham khảo
- https://sendgrid.com/blog/web-api-or-smtp-relay-how-should-you-send-your-mail/
- https://sendgrid.com/docs/glossary/web-api/
- https://github.com/sendgrid/sendgrid-ruby
- https://sendgrid.com/docs/API_Reference/api_v3.html
- https://www.linkedin.com/pulse/huong-dan-dang-ky-tai-khoan-sendgrid-de-gui-email-marketing-seo
- https://canhme.com/kinh-nghiem/smtp-server-mien-phi/
- https://viblo.asia/p/tim-hieu-ve-sendgrid-3wjAM7mgvmWe
- https://viblo.asia/p/sendgrid-dich-vu-mail-6J3ZgBnEKmB
