2011-08-07 223 views
0

我設法配置我的本地機器上的ActionMailer通過Gmail發送電子郵件。 (它需要的Gemfile tlsmail)ROR發送電子郵件heroku,gmail

### config/environment.rb 
require 'tlsmail' 

Ideas::Application.configure do 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address  => 'smtp.gmail.com', 
    :port   => '587', 
    :domain   => '[email protected]', 
    :user_name  => '[email protected]', 
    :password  => 'xxxxxxx', 
    :authentication => :plain 
    } 
end 

這個工作我的本地機器上(該郵件被送到),但作爲一般hreoku了一些問題,這(錯誤:: ECONNREFUSED(拒絕連接 - 連接(2))) 。我用Google搜索,他們有Gmail的用戶特定的解決方案:

http://blog.heroku.com/archives/2009/11/9/tech_sending_email_with_gmail/

他們說我需要一個額外的SMTP TLS庫。如上所述,我添加了一個解決問題的gem,但只在我的本地機器上解決。好吧,我嘗試了他們的解決方案,並在Heroku上運行......但停止了在我的本地工作。 (它不會給出錯誤,它只是表示電子郵件已發送,但從未發送過。)

環境變量設置正確。

你有什麼想法如何使至少有一種方法可以在我的本地機器和heroku上工作?

再見

回答

0

您需要在正確的環境中進行設置。您需要在您的gem文件中使用組

group :development do 
    gem '<development gem here>' 

group :production do 
    gem '<production gem here>' 

不要忘記重新包裝。然後將與每個環境相關的配置移動到config/environments/production.rb或config/environments.development.rb中

+0

仍然存在問題。 heroku讓我安裝的不是寶石。這是一個插件,我寧願不能將它從生產版本中排除 - 至少我不知道如何。即使我保持配置不變,這個插件也會覆蓋它。 – gisek

+0

是否有任何原因您不能使用Sendgrid添加? –

+0

我的帳戶必須經過驗證,所以我必須給我的信用卡號碼,但我沒有。 :P – gisek