6

ar_sendmail端末からコマンドを実行できません。私はその構成を見逃したとは思わない。以下は私のコードです。

development.rb
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++
ActionMailer :: Base.delivery_method =:activerecord
ActionMailer :: Base.smtp_settings = {
  :address => "smtp.gmail.com"、
  :port => 25、
  :domain => "www.google.com"、
  :authentication =>:plain、
  :user_name => "ashis.lun@gmail.com"、
  :password => "kathmandu"、
  :enable_starttls_auto => true
}
「action_mailer/ar_mailer」が必要
Gemfile
+++++++++++++++++++++++++++
gem "ar_mailer"、 "1.5.1"
私のメーラー
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++
クラスPostoffice<ActionMailer:: ARMailer
  def restore_password_email(アカウント、名前、アドレス)
    @recipients=アドレス
    @from = "ashis.lun@gmail.com"
    @subject = "#{account.org_name}のアカウントの準備ができました"
    @body ["subdomain"] = account.subdomain
    @body["name"]=名前
    @body ["org_name"] = account.org_name
    @body["password"]=パスワード
    @body["email"]=アドレス
  終わり
終わり
私のコントローラー
++++++++++++++++++++++++++++++++++++++++++++++++++++ ++
def reset_password
    @user = User.find_by_email(params [:email])

    始める
      @userの場合
        パスワード=get_new_password
        @ user.update_attributes!(:password => password)
        Postoffice.deliver_recover_password_email(@ account、@ user.individual.firstname、@ user.email、password)
        flash [:notice] = "パスワードが電子メールで送信されました。すぐに表示されます!"
        redirect_to'/ sessions / new'      
      終わり
    救援
      flash [:notice] = "申し訳ありませんが、パスワードのリセットで問題が発生しました。"
      redirect_to'/ sessions / new'
    終わり
  終わり
終わり

ar_sendmailコマンドを実行するたびに、以下のメッセージが表示されます。コンソールRAILS_ROOTを押すと、次のように表示されます/Users/me/Dev/a5his

使用法:ar_sendmail[オプション]

ar_sendmailは、電子メールテーブルをスキャンして新しいメッセージを探し、それらをに送信します。
Webサイトの構成済みSMTPホスト。

ar_sendmailは、Railsアプリケーションのルートから実行するか、指定する必要があります
--chdirを使用します。

ar_sendmailが--pid-fileで開始された場合、PIDの場合は開始に失敗します
ファイルがすでに存在するか、内容がPIDと一致しません。

Sendmailオプション:
    -b、-batch-sizeBATCH_SIZE遅延ごとに送信する電子メールの最大数
                                     デフォルト:利用可能なすべての電子メールを配信します
        --delayDELAY新着メールのチェック間の遅延
                                     データベース内
                                     デフォルト:60
        --max-ageMAX_AGE電子メールの最大年齢。この後
                                     キューから削除されます。
                                     キューのクリーンアップを無効にするには、0に設定します。
                                     デフォルト:604800秒
    -o、-once新着メールを確認して1回だけ配信
                                     デフォルト:false
    -p、--pid-file[PATH]pidを保存するファイル。
                                     デフォルトは/var/run/ar_sendmail.pidです
                                     パスが指定されていない場合
    -d、-daemonizeデーモンプロセスとして実行
                                     デフォルト:false
        --mailq送信を待機しているメールのリストを表示します

セットアップオプション:
        --create-migration移行を出力してEメールテーブルを追加します
                                     stdoutに
        --create-modelEmailActiveRecordのモデルを出力します
                                     stdoutへのオブジェクト

一般的なオプション:
    -c、-chdirPATHアプリケーションパスにPATHを使用します
                                     デフォルト: 。
    -e、--environmentRAILS_ENVRAILS_ENV定数を設定します
                                     デフォルト:
    -t、-table-nameTABLE_NAME電子メールを保持しているテーブルの名前
                                     sendmailとの両方に使用されます
                                     移行の作成
                                     デフォルト:Eメール
    -v、-[no-]verbose冗長にする
                                     デフォルト:
    -h、--helpあなたはそれを見ています


メールを配信するには、ar_sendmailをRailsアプリケーションのルートから実行する必要があります。

/ Users / me / Dev/a5hisはRailsアプリケーションルートではないようです。

よろしくお願いします<><

4

6 に答える 6

2

遅延ジョブを使用してみませんか?過去に ar mailer を使用したことがありますが、遅延ジョブの方がはるかに優れたソリューションであることがわかりました。

https://github.com/collectiveidea/delayed_job

于 2011-06-25T07:04:38.923 に答える
1

それが違いを生むかどうかはわかりませんが、ここに置くように言っています

require "action_mailer/ar_mailer"

environment.rbdevelopment.rbまたはではありませんproduction.rb。それ以外には、あなたが逃したものは何も見えません。

于 2011-06-23T22:05:12.633 に答える
0

メールを配信するには、ar_sendmailをRailsアプリケーションのルートから実行する必要があります。/ Users / me / Dev/a5hisはRailsアプリケーションルートではないようです。

アプリケーションのルートでコマンドを実行していますか?

于 2011-06-27T23:45:14.020 に答える
0

試す

cd #{Rails.root.to_s} && bundle exec ar_sendmail_rails3 -e production
于 2012-04-26T09:22:06.300 に答える
0

ar_sendmail --chdir /Users/me/Dev/a5hisコマンドを実行する前に、Rails アプリのルートに変更してみてください

于 2011-06-10T12:22:51.880 に答える
0

ソース (以下を参照) を見ると、config/environment のロードに失敗した場合にこのメッセージが表示されます。私が遭遇した例の 1 つは、依存関係が満たされていない場所で、config/environment が読み込まれているときに例外が発生していました。これに対処するには、irb セッションを使用して、require config/environment を試して、require が失敗する原因となっている可能性のあるエラーを確認します。

Dir.chdir options[:Chdir] do
  begin
    require 'config/environment'
  rescue LoadError
    usage opts, <<-EOF
  #{name} must be run from a Rails application's root to deliver email.
  #{Dir.pwd} does not appear to be a Rails application root.
      EOF
  end
end
于 2014-05-08T14:29:59.737 に答える