2013-10-03 4 views
7

「送信アドレス」としてgmailアカウントを使用して開発されたRails 3.2.8アプリケーション。メール作品を送信するとき は私environment.rbにファイルには、この含まれていますRails Mailerが電子メールを送信したときにEnd Of Fileエラーが発生する原因は何ですか?

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.smtp_settings = { 
    :address => "smtp.gmail.com",  
    :port => 587,       
    :domain => "gmail.com",    
    :authentication => :login,    
    :user_name => "accountname",   
    :password => "123456789"    
} 

私は自分のアプリケーションログにこのメッセージが表示されます: 例外EOFError(ファイルの終わりに達した): 上記のコードは、以下に示すものに変更されたとき:

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.smtp_settings = { 
    :address => "mail.company.com", 
    :port => 25, 
    :domain => "company.com", 
    :authentication => :login, 
    :user_name => "accountname", 
    :password => "123456789" 
} 

私はこのように私は アカウント名の@会社を知って、私は電子メールアドレス に手動で電子メールメッセージを送信すると、そのようなThunderbirdなどのメールクライアントを使用している場合、それが到着見ることができる-am-を伝えることができます。 comは機能的です。

ファイルのエラー終了がどのように作用するのか分かりません。 また、ログにもっと多くの情報を表示する方法もわかりません。

私は、ファイルの終わりの原因を特定するためのいくつかの提案を読むことを楽しみにしています。

Started POST "/sendInvites?locale=en&lot_id=18&user_id=17" for 99.99.99.99 at 2013-10-03 08:52:09 -0700 
Processing by WaitingListsController#sendInvites as HTML 
    Parameters: {"authenticity_token"=>"uwz/6pW1rLPXR4gU3m3OwCmU0O3DSJ/haNM2/ai+OR8=", "locale"=>"en", "lot_id"=>"18", "user_id"=>"17"} 
=======>>>> Beginning Send Invitation Process <<<<======= 
=======>>>> just before the PassEmailer.requestApprovedWL IS called to send the invitation <<<<======= 
>>>> Beginning ::: requestApprovedWL(user_info) <<<<======= 
    Rendered pass_emailer/requestApprovedWL.erb (0.9ms) 
>>>> at the end of ::: requestApprovedWL(user_info) <<<<======= 
Completed 500 Internal Server Error in 1718ms 

EOFError (end of file reached): 
    app/controllers/waiting_lists_controller.rb:276:in `sendInvites' 
+2

エラーについては、常にエラートレース全体を貼り付けてください。投稿全体にエラーを追加してください。 – Momer

+0

バックグラウンドで 'mailcatcher'を実行していないときにこのエラーが発生しました。それはちょっとばかげている。 – jrhorn424

+0

あなただけではありません。それは解決策がないと思います。 – JohnMerlino

答えて

1

この問題が引き続き発生している人は、いつでもプロダクションにデフォルト設定されているようです。あなたの開発やステージング中は、プロダクション変数を使用しています(またはプロダクト変数を探しています)。また、ドキュメントごとに、Rails環境はロードされません。

開発中またはステージング中は、手動でschedule.rbにこれを知らせる必要があります。 File.expand_path方法hereを見つけた後、次は私が私のschedule.rbファイルを起動する方法です:これはあなたのRailsの環境を提供し、また、ログのパスを設定することができます

require File.expand_path(File.dirname(__FILE__) + "/environment") 
set :environment, Rails.env 
set :output, Rails.root.join('log','cron.log') 

関連する問題