2012-07-06 8 views
22

Sto provando a inviare e-mail in un'app Rails. Funziona se uso Gmail, ma non funziona se uso Mandrill. Sto ottenendo questo errore di timeout con Mandrill. Non sono sicuro di cosa sto sbagliando. Con Gmail e Mandrill sto impostando username e password/api_key usando le variabili d'ambiente. L'unica differenza tra i due setup è ciò che vedi qui sotto. Qualche idea?Impossibile Mandrill per inviare e-mail dall'app Rails

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' 

Mandrillo Non funziona

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

Gmail funziona

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"] 
} 

risposta

37

porta uso 587 per mandrillo , lo stesso è successo a me :)

questo perché la porta 25 sta inviando testo in chiaro e la porta 587 invia email codificate SSL (che penso sia l'intera idea di mandrill).

Non ho idea del motivo per cui l'hanno impostato sulla porta 25 nei loro esempi.

+1

Ho riscontrato un problema simile in cui alcune email venivano fuori e altre non funzionavano a causa di Net :: OpenTimeout. Passare alla porta 587 lo corregge. Forse tutti e loro madre stanno usando 25 quindi è troppo traffico su quel porto? – idrinkpabst

0

qui ci sono alcune cose che potete provare sulla base delle informazioni che hai fornito:

  1. assicurati che le informazioni corrette siano in ec h dei tuoi file di ambiente (production.rb e development.rb)

  2. provare hardcoding il nome utente e la password per mandrillo anziché utilizzare variabili ambientali (per la prova unica)

+1

hardcoding un nome utente e una password non è mai una buona idea –

+1

hard coding può essere utilizzato per verificare se si riscontrano problemi con le variabili ambientali. –

+1

Può essere una buona idea durante il test del tuo ambiente di sviluppo. Probabilmente ciò che Naoise Golden significa è che dovresti SEMPRE essere molto attento a non commettere alcuna modifica a git durante i test in modo da non esporre il tuo nome utente o password. Suggerimento – SoEzPz

Problemi correlati