2013-04-22 173 views
3

我正在使用Mandrill爲網站上的用戶構建反饋表(他們填寫表單並向我發送電子郵件)。mandrill從本地主機發送電子郵件

我想測試開發中的電子郵件功能。我用麒麟作爲服務器和我的本地地址爲0.0.0:8080

不過,我得到一個500服務器錯誤,淨:: SMTPServerBusy:中繼訪問被拒絕

我跟着Heroku的指令一步一步來。

這裏爲m application.rb中配置:

config.action_mailer.smtp_settings = { 
     :address => 'smtp.mandrillapp.com', 
     :port => '587', 
     :domain => 'heroku.com', 
     :user_name => ENV['MANDRILL_USERNAME'], 
     :password => ENV['MANDRILL_APIKEY'] 
    } 

    ActionMailer::Base.delivery_method = :smtp 

我跟着山魈/ Heroku的網頁上的說明進行設置。

我有一個設置了一個MANDRILL_USERNAME一個.ENV文件和我的MANDRILL_APIKEY

這裏是我的ActionMailer文件:

class FeedbackMailer < ActionMailer::Base 
    default :from => "" 
    default :to => "[email protected]" 
    default :subject => "feedback about xxx" 

    def send_feedback(message) 
    #debugger 
    @message = message 
    mail(:from => message[:sender_email]) 

    end 
end 

任何幫助,將不勝感激。

我可以確認在生產中發送的電子郵件。

+0

你嘗試config.action_mailer.delivery_method =:SMTP代替的ActionMailer :: Base.delivery_method =:SMTP在application.rb中? – Mattherick 2013-04-26 13:37:08

回答

1

如果所有的設置在生產正在努力,但沒有在本地,有幾個可能的原因:

  1. 你是如何加載從.ENV的變量ENV?有可能環境變量沒有按照預期在本地加載。如果你在本地硬編碼證書,它是否工作?

  2. 您可能會遇到端口或出站SMTP流量被阻止的問題。考慮嘗試端口2525,因爲它可能不太可能被本地ISP阻止。 465端口啓用了SSL也可以工作,即使您的ISP阻止其他SMTP流量

+0

你的第一個答案是正確的 - 事情在生產中起作用,但不在開發中。 – Laurent 2013-04-26 18:06:09