В Rails 3 вы устанавливаете класс ActiveMailer в app / mailers /, помещаете шаблоны представлений в app / views /, и тогда вы можете правильно отправлять электронные письма после настройки вашей среды.
Чтобы получить доступ к вашей почтовой программе и выполнить отправку, вы можете настроить задачу Rake в lib / tasks / cron.rake, которая требует среды, например:
namespace :cron
desc "Sends some emails"
task :send_emails => [:environment] do
MailerName.some_email(:some_option => 'w00t').deliver
end
end
Затем вы можете выполнить эту задачу,запуск сценария оболочки bash примерно так:
#!/bin/bash
export GEM_HOME=/usr/local/lib/ruby/gems/1.9.1/gems
export GEM_PATH=/usr/local/lib/ruby/gems/1.9.1
cd "/users/yourname/railsapp"
/usr/local/bin/rake cron:send_emails RAILS_ENV=production
Обратите внимание, что это будет загружать всю вашу среду при каждом запуске.Если вы делаете много электронных писем, вы можете обнаружить, что лучше использовать curl
для периодического обращения к определенному URL на вашем сервере, чтобы вы использовали существующие серверные экземпляры Rails вместо того, чтобы раскручиватьновый на каждом запуске.