2010-10-31 59 views
6

以下是我在setup_mail.rb中爲Google Apps設置的smtp設置。Rails 3:Google Apps/Heroku的SMTP設置

:address    => "smtp.gmail.com", 
    :port     => 587,     
    :domain    => 'mysite.co', 
    :user_name   => '[email protected]',  
    :password    => 'password',  
    :authentication  => 'plain',    
    :enable_starttls_auto => true 

我的開發日誌中詳細顯示了正在生成和發送到正確的電子郵件地址的電子郵件......但他們沒有到達。我只能認爲上面的設置肯定有問題。你能看到問題是什麼嗎?

一旦這個問題解決了,我有什麼問題可以在Heroku上使用嗎?


注:以上的記錄產生警告:

DEPRECATION WARNING: Giving a hash to body is deprecated, please use instance va 
riables instead. (called from process at C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gem 
s/actionmailer-3.0.0/lib/action_mailer/old_api.rb:77) 

回答

2

原來這個問題是在其他地方 - 一個古老的AuthLogic教程讓我在發送激活碼方面朝正確的方向發送電子郵件本身的錯誤方向。 Rails正在生成電子郵件,但沒有發送它,因爲mail_helper的代碼並不是最後一步。

如果你回想起來讀這篇文章,我學到了什麼:確保你的Rails 3.0 user_mailer文件已經(或類似):

mail(:to => "#{user.login} <#{user.email}>", :subject => "Registered") 
0

我沒有用Rails3中,但我記得reading發送的電子郵件的發展發送給發件人。您的棄用警告是因爲您正在爲以前的散列格式的電子郵件模板定義變量。 Rails 3的作品differently。根據我的經驗,部署到heroku的工作完美無瑕,但您需要定義mx records

+0

嗨,馬克。你可以請更具體嗎?您如何確定修正棄權?如果您指定攔截器,則發送的電子郵件只會在開發環境中重定向到發件人。 – sscirrus 2010-10-31 19:31:00

+0

另外,我已將我的MX記錄更新爲Google Apps。當我手動發送/回覆電子郵件時,我的域名下有許多新的電子郵件可以正常工作 - 現在的問題是如何讓Rails發送這些電子郵件:) – sscirrus 2010-10-31 19:42:48

5
在用戶控制器

不要忘記添加.deliver

UserMailer.registration_confirmation(@user).deliver 

那是什麼難倒我