Stworzyłem model, który po uruchomieniu za pomocą runnera powinien wysyłać do użytkownika wiadomość email. Jeśli uruchamiam to z konsoli to mail jest wysyłany bez problemu. Natomiast do zabaw z cronem polecił mi ktoś na tym forum gem whenever więc użyłem go do utworzenie akcji która uruchamia runnera, tak żeby akcja wykonywała się okresowo. A oto mój kod poniżej:
app/models/run.rb
class Run
def self.test
user = User.new
user.email = "wafcio@gmail.com"
UserMailer.mail_user(user).deliver
end
end
app/mailer/user_mailer.rb
[code=ruby]class UserMailer < ActionMailer::Base
default :from => “test@domena.pl”
def new_user(user)
@user = user
mail(:to => user.email,
:cc => user.email,
:subject => “Temat: #{t(‘mailer.welcome’)}”)
end
end[/code]
Po utworzeniu tego kodu do pliku config/schedule.rb wpisałem:
every 1.minute do
runner "Run.test"
end
Następnie dodałem akcje do crona poleceniem:whenever --update-crontab aplikacja
Po wylistowaniu akcji crona mam:
crontab -l
* * * * * /bin/bash -l -c 'cd /home/wafcio/aplikacja && script/rails runner -e production '\''Run.test'\'''
I mail niby jest wysyłany ale na adres root@domena.pl a nie adres email użytkownika.
Ustawiłem ręcznie akcje do wykonania w crontab, ale niestety też wysyła maila na root@domena.pl
Podsumowując jak uruchamiam Runnera ręcznie w konsoli to mail wysyła na prawidłowy adres a jak uruchamia go cron to mail jest wysyłany na nieprawidłowy adres. Wie ktoś jakby to można naprawić ?