2012-07-06 96 views
22

我正嘗試在Rails應用程序中發送電子郵件。如果我使用Gmail,它可以正常工作,但如果我使用Mandrill,則不起作用。 Mandrill發生這種超時錯誤。不知道我做錯了什麼。對於Gmail和Mandrill,我使用環境變量設置用戶名和密碼/ api_key。兩種設置之間的唯一區別在於您在下面看到的內容。有任何想法嗎?無法讓Mandrill從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' 

山魈不工作

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

Gmail的作品

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

回答

37

使用端口587山魈,發生在我身上:)

這是因爲端口25發送純文本和端口587發送SSL編碼的電子郵件(我認爲是整個mandrill的想法)。

我不知道爲什麼他們將它設置爲端口25在他們的例子。

+1

我遇到類似的問題,其中一些電子郵件正在外出,而另一些則由於Net :: OpenTimeout而失敗。切換到端口587解決了這個問題。也許每個人和他們的母親都在使用25個,因此這個端口上的流量太大了? – idrinkpabst 2014-07-25 17:30:30

0

以下是你可以嘗試根據您提供的信息的幾件事情:

  1. 確保正確的信息在eac中您的環境文件(production.rb和development.rb)h的

  2. 嘗試硬編碼爲山魈的用戶名和密碼,而不是使用環境變量(只用於測試)

+1

硬編碼的用戶名和密碼永遠不是一個好主意 – 2012-10-22 23:37:32

+1

硬編碼可以用來測試你是否有環境變量的問題。 – 2012-10-27 23:43:22

+1

在測試開發環境期間,這可能是一個好主意。 Naoise Golden可能意味着你應該非常小心,不要在測試過程中對git進行任何更改,以免暴露用戶名或密碼。 – SoEzPz 2014-10-12 16:36:10

相關問題