Я использую всякий раз, когда у меня есть рельсы cron, отправляющие электронные письма. Кажется, все работает нормально, и у меня нет ошибок в моем cron.log или моем файле production.log, но я никогда не получаю письмо. Я также проверял правильность адреса электронной почты.Rails cron не отправляет электронные письма
Любая помощь приветствуется.
production.log файл содержит следующее:
Connecting to database specified by database.yml
Rendered email_mailer/send_birthday_reminders.html.erb (5.3ms)
Sent mail to [email protected] (409ms)
Вот мой, когда драгоценный камень schedule.rb файл
set :output, "#{path}/log/cron.log"
every :hour do
runner "BirthdayRemindersController.send_birthday_email_reminders"
end
birthday_reminders_controller.rb
class BirthdayRemindersController < ApplicationController
# cron job that sends birthday reminders
def self.send_birthday_email_reminders
users = User.all
email_addresses = []
users.each_with_index do |user, i|
if user.user_details.birthday_reminders == true
email_addresses[i] = get_primary_email(user)
end
end
p "email_addresses to send to:"
p email_addresses
users.each do |user|
p "this user is"
p user.user_details.full_name
if user.user_details.birthday.try(:strftime, "%m") == Date.today.strftime("%m") && user.user_details.birthday.try(:strftime, "%d") == Date.today.strftime("%d")
p "reminder sent"
EmailMailer.send_birthday_reminders(user, email_addresses).deliver
end
end
end
end
email_mailer.rb фрагмент кода
class EmailMailer < ActionMailer::Base
include ApplicationHelper
default :from => "\"FamNFo\" <[email protected]>"
def send_birthday_reminders(birthday_person, email_addresses)
p "we in send_birthday_reminders mailer"
p email_addresses
@birthday_person = birthday_person
mail(:subject => "Birthday Reminder For The Caflisch Family", :to => email_addresses, :reply_to => email_addresses)
end
end
deploy.rb Capistrano содержит этот
# needed for the 'whenever' gem
set(:whenever_command) { "RAILS_ENV=#{rails_env} bundle exec whenever"}
require "whenever/capistrano"
Каковы ваши настройки smtp в процессе производства? –
Я использую sendmail – Catfish
Ваш производственный журнал показывает, что он отправляет (если только @EfratBlaier не прав, но, поскольку вы ответили, я предполагаю, что вы это проверили). Вы проверили конфигурацию и журналы в sendmail? –