0

そのため、RubyonRailsを使用するWebサイトの保守を支援するように依頼されました。さて、私はしばらくの間Rubyをプログラミングしてきましたが、Railsはまだ初めてです。私が最初に気付いた問題は、アクティベーションメールが届くまでに約6時間かかることです。エラーが原因で電子メールが送信されなかったが、正しく送信されていて、速度が遅い場合は1つのことです。また、これが実行されているサーバーも独自のSMTPです。setup_emailメソッドを呼び出す前に、電子メールがどのようにフォーマットされているかを確認しましたが、すべて問題ないようです。私はActionMailerlibを掘り下げて、そこにあるファイルを読み通しましたが、異常なことは何も見られませんでした。では、電子メールの配信に6時間かかる可能性が最も高いのは何ですか?

編集:私はロードマスターのアイデアを試しましたが、確かに奇妙なことに気づきました。ログに記録されているように、通常の電子メール送信には通常の遅延があるようですが(例:「delay = 0.99、delays = 0.08 / 0.01 / 0.19 / 0.7」)、blah@blah.comに電子メールを送信しようとする複数の電子メールに気づきました。 。そのようなホストを見つけることができないので、それらはすべて異なります。ただし、それらに関連する遅延ははるかに大きくなります(例:「delay = 239853、delays = 239818 / 0.02 / 35/0」)。これは、sendmailの構成の問題というよりも、どこかでRailsコードの問題のように聞こえますが、私はこのサイトの保守を始めたばかりです。探し始める可能性のある場所はどこですか?

4

1 に答える 1

1

サーバーのメールログにア​​クセスできますか?Unixサーバーの場合は、/ var/logにある可能性があります。何が起こっているのかについての手がかりを見つけるかもしれません。これが私がすることです:

  1. SMTPサーバーログ(sendmail、exim、postfixなど)を見つけます。
  2. ログを監視するには、tail-fwhatever.logを使用します。これをターミナルで実行したままにします。
  3. アプリに移動し、アクティベーションメールの送信をトリガーするために必要な手順を実行します。
  4. ログを監視しているウィンドウをチェックして、何が起こるかを確認してください。

ActionMailer自体は、それほど大きな遅延を引き起こすことはありません(ただし、メールの配信中はスピードデーモンではありませんが、1〜2秒以内にすべてを処理する必要があります)。したがって、スタックの他の部分である可能性があります。受信者側のproblem/filter/greylist。

于 2010-03-26T23:39:49.650 に答える