2012-07-06 34 views
22

Tôi đang cố gửi email trong ứng dụng Rails. Nó hoạt động nếu tôi sử dụng Gmail, nhưng nó không hoạt động nếu tôi sử dụng Mandrill. Tôi nhận được lỗi thời gian chờ này với Mandrill. Không chắc mình đang làm gì sai. Với cả Gmail và Mandrill, tôi sẽ đặt tên người dùng và mật khẩu/api_key bằng các biến môi trường. Sự khác biệt duy nhất giữa hai thiết lập là những gì bạn thấy bên dưới. Bất kỳ ý tưởng?Không thể yêu cầu Mandrill gửi email từ Rails App

Timeout::Error in RegistrationsController#create 

execution expired 
Rails.root: /Users/michaeljohnmitchell/Sites/pre 

Application Trace | Framework Trace | Full Trace 
app/models/user.rb:38:in `send_welcome_email' 

giống phi phi Không làm việc

config.action_mailer.smtp_settings = { 
    :address => "smtp.mandrillapp.com", 
    :port  => 25, 
    :user_name => ENV["MANDRILL_USERNAME"], 
    :password => ENV["MANDRILL_API_KEY"] 
} 

Gmail Làm việc

config.action_mailer.smtp_settings = { 
    address: "smtp.gmail.com", 
    port: 587, 
authentication: "plain", 
    enable_starttls_auto: true, 
    user_name: ENV["GMAIL_USERNAME"], 
    password: ENV["GMAIL_PASSWORD"] 
} 

Trả lời

37

sử dụng cổng 587 cho giống phi phi , happend the same to me :)

điều này là do cổng 25 đang gửi văn bản thuần và cổng 587 gửi email được mã hóa SSL (mà tôi nghĩ là toàn bộ ý tưởng mandrill).

Tôi không biết tại sao họ đặt nó vào cổng 25 trong ví dụ của họ.

+1

Tôi đã gặp phải sự cố tương tự khi một số email bị xóa và những email khác không thành công do Net :: OpenTimeout. Chuyển sang cổng 587 sửa lỗi này. Có lẽ tất cả mọi người và mẹ của họ đang sử dụng 25 vì vậy nó chỉ là quá nhiều lưu lượng truy cập trên cổng đó? – idrinkpabst

0

Dưới đây là một vài điều bạn có thể cố gắng dựa trên thông tin bạn cung cấp:

  1. đảm bảo thông tin chính xác nằm trong eac h các tập tin môi trường của bạn (production.rb và development.rb)

  2. thử hardcoding tên người dùng và mật khẩu cho giống phi phi như trái ngược với sử dụng các biến môi trường (đối với chỉ thử nghiệm)

+1

mã hóa tên người dùng và mật khẩu không bao giờ là ý tưởng hay. –

+1

mã hóa cứng có thể được sử dụng để kiểm tra xem bạn có gặp vấn đề với biến môi trường hay không. –

+1

Nó có thể là một ý tưởng tuyệt vời trong quá trình thử nghiệm môi trường phát triển của bạn. Điều Naoise Golden có thể có nghĩa là bạn nên cẩn thận không thực hiện bất kỳ thay đổi nào đối với git trong quá trình kiểm tra để không để lộ tên người dùng hoặc mật khẩu của bạn. – SoEzPz

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