Tìm hiểu về SendGrid
SendGrid là gì SendGrid là 1 trong những dịch vụ nổi tiếng trong việc cung cấp email giao dịch (transaction 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 của bạn, do đó bạn không cần phải xây dựng, quy mô và duy trì các hệ thống mail ...
SendGrid là gì
SendGrid là 1 trong những dịch vụ nổi tiếng trong việc cung cấp email giao dịch (transaction 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 của bạn, do đó bạn không cần phải xây dựng, quy mô và duy trì các hệ thống mail server.
Sử dụng SendGrid giúp giảm bớt lượng mail gửi đến thư mục rác (junk folder), dễ dàng mở rộng nâng cấp qui mô hệ thống, cung cấp khả năng đánh giá tính hiệu quả của các chiến dịch mail marketing cũng như 1 kho API với các tính năng hữu ích cần thiết.
Sử dụng SendGrid trong ruby
Để sử dụng SendGrid trong ruby chúng ta sẽ dùng gem sendgrid-ruby Thêm dòng dưới đây vào Gemfile
gem 'sendgrid-ruby'
sau đó chạy lệnh
bundle
hoặc cài đặt bằng dòng lệnh
gem install sendgrid-ruby
Sau khi cài đặt xong gem sendgrid-ruby chúng ta sẽ bắt đầu sử dụng những tiện ích mà SendGrid API đem lại
Tạo mới 1 client với username và password
require 'sendgrid-ruby' # As a hash client = SendGrid::Client.new(api_user: 'SENDGRID_USERNAME', api_key: 'SENDGRID_PASSWORD') # Or as a block client = SendGrid::Client.new do |c| c.api_user = 'SENDGRID_USERNAME' c.api_key = 'SENDGRID_PASSWORD' end
Tạo 1 Mail object và tiến hành gửi mail
mail = SendGrid::Mail.new do |m| m.to = 'test@sendgrid.com' m.from = 'taco@cat.limo' m.subject = 'Hello world!' m.text = 'I heard you like pineapple.' end puts client.send(mail) # {"message":"success"}
Bạn cũng có thể tạo 1 Mail object bằng cách truyền vào 1 hash
client.send(SendGrid::Mail.new(to: 'example@example.com', from: 'taco@cat.limo', subject: 'Hello world!', text: 'Hi there!', html: '<b>Hi there!</b>')) # {"message":"success"}
Thêm file đính kèm
Bằng cách sử dụng add_attachment method chúng ta có thể đính kèm file khi gửi mail
mail.add_attachment('/tmp/report.pdf', 'july_report.pdf')
Các tham số hỗ trợ
Ngoài các tham số cơ bản khi gửi mail như from, to, subject, text SendGrid cũng hỗ trợ nhiều tham số khác như cc, bcc, reply_to, date, html đáp ứng việc gửi mail với định dạng raw text hoặc html cũng như mô tả chính xác tình trạng của mail được gửi đi
Cài đặt các tham số
Tham số có thể được thiết lập theo cách thông thường trong ruby bằng block hoặc hash
Ví dụ: ta có thể truyền tham số theo 1 trong 1 cách dưới đây
Dùng block
mail = SendGrid::Mail.new do |m| m.to = 'rbin@sendgrid.com' m.from = 'taco@rbin.codes' end
Dùng hash
client.send(SendGrid::Mail.new(to: 'rbin@sendgrid.com', from: 'taco@cat.limo'))
Thiết lập định dạng cho nội dung mail
Như đã nói ở trên thì nội dung của mail có thể được viết dưới định dạng plain text
mail = SendGrid::Mail.new mail.text = 'WHATTUP KITTY CAT!?'
hoặc html
mail = SendGrid::Mail.new mail.html = '<html><body>Stuff in here, yo!</body></html>'
So sánh SendGrid và các dịch vụ tương tự
Bên cạnh SendGrid chúng ta có thể bắt gặp 1 số dịch vụ tương tự khác như Amazon SES, MailGun, Mandrill
Amazon SES
AmazonSES tỏ ra vượt trội trong việc đưa ra 1 mức giá rất rẻ cho 1 lượng mail lớn (hàng nghìn mail): 4$$/ tháng/ 40,000 emails. Tuy nhiên hệ thống API mà nó cung cấp lại gây khó khăn cho người sử dụng. Mặt khác việc phân tích các số liệu thống kê liên quan đến quá trình gửi, nhận mail là khá hạn chế.
MailGun
Mức giá mà MailGun đưa ra là khá cao: 15$$/ tháng/ 40,000 emails. Trong khi đó, việc phân tích số liệu mới chỉ dừng ở mức cơ bản, thời gian phản hồi các truy vấn cao. Tuy nhiên MailGun có lợi thế là họ tập trung hướng tới những nhà phát triển.
Mandrill
Mandrill - dịch vụ của Mailchimp cung cấp 1 giao diện đẹp và dễ sử dụng với quá trình thiết lập ban đầu khá đơn giản. Mức giá mà Mandrill đưa ra khá dễ chịu mặc dù không rẻ như Amazon SES: 5.60$$/ tháng/ 40,000 emails. Mandrill cũng cho phép người dùng sử dụng miến phí với 12000 mail / tháng, rất thích hợp với các ứng dụng nhỏ cho cá nhân. Tuy nhiên mức độ tích hợp chưa đủ mạnh mẽ như SendGrid và mức độ hỗ trợ ở mức trung bình
SendGrid
SendGrid có thể coi là dịch vụ tiên phong trong các dịch vụ mail thương mại. SendGrid rất mạnh mẽ trong việc phân tích số liệu thống kê, API đơn giản dễ sử dụng, khả năng hỗ trợ 24/7. Mức giá mà SendGrid đưa ra không quá cao và cũng không quá thấp: 9.95$$/ tháng/ 40,000 emails. Đây là mức giá thích hợp cho những gì dịch vụ này mang lại. Nếu mức giá này giảm thấp hơn nứa thì có thể khẳng định đây là dịch vụ tuyệt nhất mà bạn nên sử dụng.