12/08/2018, 14:44

Cài đặt Amazon SES trong rails

1. giới thiệu Amazon SES là một dịch vụ cho gửi email với số lượng lớn có giá thành rẻ và chất lượng tốt nhất hiện nay (giá chỉ 1$$10,000 email), tốc độ gửi rất nhanh, khả năng vào Inbox luôn cao và đặc biệt là phương thức thanh toán tiện lợi (thanh toán qua thẻ Visa). 2. Ưu điểm So với việc ...

1. giới thiệu

Amazon SES là một dịch vụ cho gửi email với số lượng lớn có giá thành rẻ và chất lượng tốt nhất hiện nay (giá chỉ 1$$10,000 email), tốc độ gửi rất nhanh, khả năng vào Inbox luôn cao và đặc biệt là phương thức thanh toán tiện lợi (thanh toán qua thẻ Visa).

2. Ưu điểm

So với việc sử dụng SMTP có sẵn của google thì ta thấy Amazon SES gửi được mail số lượng lớn hơn, tốc độ nhanh hơn và đáng tin cậy hơn rất nhiều. Dễ dàng nâng cấp nếu hệ thống lớn hơn và chi phí cho việc này cũng khá rẻ. Phương thức thanh toán tiện lợi, giúp chúng ta có thể dễ dàng sử dụng và trải nghiệm nó.

3. Cài đặt

AWS::SES là một thư viện của Amazon's Simple Email Service's REST API. Để sử dụng nó trong rails chúng ta có thể sử dụng gem "aws-ses". Trước hết tại gemfile ta cần add gem:

# gemfile
gem "aws-ses", "~> 0.6.0", :require => 'aws/ses'

bundle gem, sau đó config nó trong môi trường /config/environments/*.rb

config.action_mailer.delivery_method = :ses

tạo file config/initializers/amazon_ses.rb

ActionMailer::Base.add_delivery_method :ses, AWS::SES::Base,
  access_key_id: 'SES_AWS_ACCESS_KEY_ID',
  secret_access_key: 'SES_AWS_SECRET_ACCESS_KEY'

Với SES_AWS_ACCESS_KEY_ID và SES_AWS_SECRET_ACCESS_KEY là key ta nhận được khi đã xác nhận domain email. Ok, vậy là bước config đã xong và ta lấy một ví dụ như sau

Ta viết một mailer và view của nó để tiến hành test:

# mailers/user_mailer.rb
class UserMailer < ApplicationMailer
    default from: noreply@gmail.com
    
    def send_mail(user)
      mail(to: user.email, subject: 'Your account is now activated')
    end

nội dung mail:

# views/user_mailer/send_mail.text.erb
Welcome!
...
Thanks for joining and have a great day!

Sử dụng rails console và gõ lệnh

UserMailer.send_mail(User.first).delivery

Với User.first này có email chính là email của các bạn để chúng ta có thể đăng nhập và test xem mail có được gửi đến hay ko. Ở đây tôi lấy ví dụ là mail của tôi với "vietanhbkaaa@gmail.com"

Ok. Vậy là đã xong, chúng ta đã gửi mail thành công thông qua dịch vụ Amazon SES.

Ngoài gem "aws-ses", chúng ta cũng có thể sử dụng gem 'aws-sdk-rails' để cài đặt Amazon Ses trong rails.

4. Kết luận

Bằng những ưu điểm nổi bật, và chi phí thanh toán thấp của mình Amazon SES đang là lựa chọn hàng đầu cho những application có chức năng gửi nhận mail. Sử dụng nó để giúp mang đến những trải nghiệm tốt nhất cho ứng dụng của chính các bạn.

5.

0