2013-04-25 28 views
8

Tôi đã có một ứng dụng Rails 3.2.7 đơn giản với Devise được thêm vào được triển khai cho Heroku với Sendgrid được thêm vào. Nó hoạt động tốt trên heroku cho tất cả mọi thứ trừ khi nó cần phải làm một mật khẩu lấy mà đòi hỏi phải gửi một email. Từ tất cả các bài viết tôi đã đọc tôi nghi ngờ tôi bằng cách nào đó thiết lập các thông số thư không chính xác. Mọi đề xuất đều được đánh giá cao.Làm thế nào để cấu hình email Devise với Heroku và Sendgrid trong Rails?

Đối config/môi trường/production.rb i thêm

config.action_mailer.default_url_options = { :host => 'smtp.sendgrid.net'} 

cho config/initializers/devise.rb i thêm

config.mailer_sender = "[email protected]" 

và cho config/environments.rb i thêm

ActionMailer::Base.smtp_settings = { 
:address  => 'smtp.sendgrid.net', 
:port   => '587', 
:authentication => :plain, 
:user_name  => ENV['SENDGRID_USERNAME'], 
:password  => ENV['SENDGRID_PASSWORD'], 
:domain   => 'heroku.com', 
:enable_starttls_auto => true 
} 

Trả lời

8

Vì vậy, vấn đề của bạn là bạn đang tham khảo các biến môi trường sai. Heroku lưu trữ thông tin đăng nhập SendGrid của bạn trong ENV['SENDGRID_USERNAME']ENV['SENDGRID_PASSWORD']. Bạn đã sử dụng tên người dùng và mật khẩu thực của mình làm tên khóa.

này sẽ làm việc:

ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.sendgrid.net', 
    :port   => '587', 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => 'heroku.com', 
    :enable_starttls_auto => true 
} 
+1

Cảm ơn Swift- nó hoạt động !! – user2284821

Các vấn đề liên quan