Gủi mail trong rails với Amazon SES

Giới thiệu

Bạn đang tìm một dịch vụ gửi mail phải không? Mình xin giới thiệu cho mọi người một dịch vụ gửi mail của Amazon. Amazon SES(Amazon Simple Email Service) là một dịch vụ gửi mail giá rẻ với số lượng mail gửi miễn phí đến tận 62,000 mail trong một tháng. Dưới đây là so sánh giá dịch vụ của Amazon SES và dịch vụ khác với số lượng 40,000 mails.

Dịch vụ Giá
AmazonSES $4
Mailgun $15
MailJet $17
Postmark $30
SendinBlue $7.5
SendGrid $10

Cách sử dụng

  • Generate mailer cho app của bạn
rails generate mailer my_mailer
class MyMailer < ApplicationMailer
  def send_email(params)
    @name = params[:name]
    @email = params[:email]
    @message = params[:message]
    mail(:to=> @email, :subject=>"Amazon SES Email")
  end
end
  • Config trong file config/environments/development.rb
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
  • Config Amazon SES
  1. Login vào AWS management console
  2. Tìm từ khoá Simple Email Service
  3. Trong trang SES Home, vào Email Addresses, click Verify a New Email Address
  4. Sau khi confirm email xong. Vào trong tap SMTP Settings và Create SMTP Credentials
  5. Điền các thông tin vào trong file config/environments/development.rb
config.action_mailer.smtp_settings = {
  :address => "...",
  :port => 587,
  :user_name => ENV["SES_SMTP_USERNAME"]
  :password => ENV["SES_SMTP_PASSWORD"]
  :authentication => :login,
  :enable_starttls_auto => true
}

address = Server Name

SES_SMTP_USERNAME và SES_SMTP_PASSWORD lấy được từ SMTP Credentials vừa tạo ở bước trên.

  • Gửi mail

Để gửi mail chỉ cần gọi lệnh

MyMailer.send_email(name: "test SES", email: "[email protected]", message: "Test SES").deliver

Tài liệu tham khảo