Делать то, что описано в другом ответе, небезопасно; Вы устанавливаете здесь переменные класса, а не переменные экземпляра. Если ваш Rails-контейнер разветвляется, вы можете сделать это, но теперь ваше приложение зависит от деталей реализации контейнера. Если вы не разветвляете новый процесс Ruby, тогда вы можете иметь состояние гонки здесь.
У вас должна быть модель, расширяющая ActionMailer :: Base, и когда вы вызываете метод, он возвращает объект Mail :: Message. Это ваш экземпляр объекта, и вы должны изменить настройки. Настройки также являются просто хэшем, поэтому вы можете встроить его.
msg = MyMailer.some_message
msg.delivery_method.settings.merge!(@user.mail_settings)
msg.deliver
Где в приведенных выше mail_settings возвращает некоторый хэш с соответствующими ключами IE
{:user_name=>username, :password=>password}