Команда ar_sendmail не работает с ruby ​​1.9.2

Я не умею бегать ar_sendmail Команда из моего терминала. Я не думаю, что я пропустил его конфигурацию. Ниже мой код;

development.rb
++++++++++++++++++++++++++++++++++++++++++++++++++ ++
ActionMailer:: Base.delivery_method =: activerecord
ActionMailer:: Base.smtp_settings = {: address => "smtp.gmail.com",: порт => 25,:domain => "www.google.com",: аутентификация =>: обычная,:user_name => "ashis.lun@gmail.com",:password => "Катманду",:enable_starttls_auto => true
}
требует "action_mailer / ar_mailer"
 Gemfile 
+++++++++++++++++++++++++++
гем "ar_mailer", "1.5.1" 
Мой почтовик ++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++ класс Postoffice 
 Мой контроллер
++++++++++++++++++++++++++++++++++++++++++++++++++++
def reset_password
    @user = User.find_by_email(params[:email])

    начать
      если @user
        пароль = get_new_password
        @user.update_attributes!(: пароль => пароль)
        Postoffice.deliver_recover_password_email(@account, @user.individual.firstname, @user.email, пароль)
        flash[:note] = "Ваш пароль был отправлен вам по электронной почте. Он должен появиться через минуту!"
        redirect_to '/session /new'      
      конец
    спасение
      flash [: note] = "Извините, произошла ошибка при сбросе пароля."
      redirect_to '/session /new'
    конец
  конец
конец

Всякий раз, когда я запускаю команду ar_sendmail, я просто получаю сообщение ниже. Если я ударил RAILS_ROOT в консоли, то я это показывает /Users/me/Dev/a5his

Использование: ar_sendmail [опции]

ar_sendmail сканирует таблицу электронной почты на наличие новых сообщений и отправляет их
веб-сайт настроен хост SMTP.

ar_sendmail должен быть запущен из корня приложения Rails или должен быть указан
с --chdir.

Если ar_sendmail запускается с --pid-file, он не запустится, если PID
файл уже существует или содержимое не соответствует его PID.

Параметры Sendmail:
    -b, --batch-size BATCH_SIZE Максимальное количество писем для отправки за задержку
                                     По умолчанию: доставить все доступные электронные письма
        --delay DELAY Задержка между проверками на новую почту
                                     в базе данных
                                     По умолчанию: 60
        --max-age MAX_AGE Максимальный возраст для электронной почты. После этого
                                     он будет удален из очереди.
                                     Установите 0, чтобы отключить очистку очереди.
                                     По умолчанию: 604800 секунд
    -o, --once Проверять новую почту и доставлять только один раз
                                     По умолчанию: false
    -p, --pid-file [PATH] Файл для хранения pid.
                                     По умолчанию /var/run/ar_sendmail.pid
                                     когда путь не указан
    -d, --daemonize Запускать как процесс демона
                                     По умолчанию: false
        --mailq Показать список писем, ожидающих отправки

Параметры настройки:
        --create -igration Распечатывает миграцию для добавления таблицы электронной почты.
                                     вытащить
        --create-model Печать модели для электронной почты ActiveRecord
                                     возражать против stdout

Общие параметры:
    -c, --chdir PATH Использовать PATH для пути приложения
                                     По умолчанию: .
    -e, --environment RAILS_ENV Установить постоянную RAILS_ENV
                                     По умолчанию: 
    -t, --table-name TABLE_NAME Имя таблицы, содержащей электронные письма
                                     Используется как для sendmail, так и для
                                     создание миграции
                                     По умолчанию: электронная почта
    -v, - [no-] подробный быть подробным
                                     По умолчанию: 
    -h, --help Ты смотришь на это


ar_sendmail должен быть запущен из корня приложения Rails для доставки электронной почты.

/ Users / me / Dev / a5his не является корневым приложением Rails.

Заранее спасибо <><

6 ответов

Решение

Как насчет использования отложенной работы? В прошлом я использовал ar mailer и считаю, что отложенная работа - намного лучшее решение.

https://github.com/collectiveidea/delayed_job

Не уверен, если это будет иметь значение, но он говорит здесь, чтобы положить

require "action_mailer/ar_mailer"

в environment.rbне development.rb или же production.rb, Кроме этого, я не вижу ничего, что вы пропустили.

ar_sendmail должен быть запущен из корня приложения Rails для доставки электронной почты. /Users/me/Dev/a5his не является корневым приложением Rails.

Вы запускаете команду в корне приложения?

Если вы посмотрите на источник (показанный ниже), это сообщение отобразится, если загрузка конфигурации / окружения не удалась. Я столкнулся с одним из случаев, когда зависимость не была удовлетворена, что вызывало исключение при загрузке конфигурации / среды. Для решения этой проблемы вы можете использовать сеанс irb и попытаться запросить 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

Пытаться

cd #{Rails.root.to_s} && bundle exec ar_sendmail_rails3 -e production

Пытаться ar_sendmail --chdir /Users/me/Dev/a5his или перейдите в корень приложения rails перед запуском команды

Другие вопросы по тегам