У меня есть приложение Ruby on Rails с несколькими средами (разработка, подготовка, производство).В моей промежуточной среде я хочу иметь возможность переопределить все электронные письма, отправляемые из системы, чтобы перейти к зарегистрированному пользователю current_user. Все, что я прочитал, говорит мне, что я должен продолжать передавать current_user в свою почтовую программу.Тем не менее, это не выглядит логичным для меня, так как есть сотни кодов почтовых программ, которые нужно изменить.
В идеале я бы хотел настроить перехватчик электронной почты, переопределить mail.to
и всегда отправлять current_user.Есть ли способ сделать это?Вот что у меня есть в моих инициализаторах:
if Rails.env.staging?
class OverrideMailRecipient
def self.delivering_email(mail)
mail.to = ['development@xxx.com']
end
end
ActionMailer::Base.register_interceptor(OverrideMailRecipient)
end
Это работает, но теперь я хотел бы сделать так, чтобы оно передавалось текущему пользователю вместо жестко закодированного электронного письма.
В качестве бонуса я хотел бы добавить к телу письма первоначальных получателей письма, чтобы текущий пользователь знал, кто должен был получить его в работе.
Надеюсь, это имеет смысл, любойпомощь приветствуется!:)
Я использую Rails 5.1.4 и Devise для аутентификации.