Rails ActionMailer с несколькими SMTP-серверами - PullRequest
28 голосов
/ 13 октября 2009

Мне нужно использовать два разных сервера smtp в приложении Rails. Похоже, что при построении ActionMailer невозможно использовать разные smtp_settings для подкласс. Я мог бы перезагружать настройки smtp для каждого класса почтовой программы всякий раз, когда отправляется сообщение, но это портит плагин ExceptionNotifier, который находится вне моего контроля (если я тоже не связываюсь с ним). У кого-нибудь есть решение / плагин для чего-то вроде это?

В идеале я бы хотел иметь

class UserMailer < ActionMailer::Base; end

, а затем установить в environment.rb

ActionMailer::Base.smtp_settings = standard_smtp_settings
UserMailer.smtp_settings = user_smtp_settings

Таким образом, большинство моих почтовых программ, в том числе ExceptionNotifier, получат настройки по умолчанию, но UserMailer будет использовать платную службу ретрансляции.

Ответы [ 11 ]

0 голосов
/ 13 октября 2009

Боюсь, это не выполнимо изначально.
Но вы можете немного его обмануть, изменив переменную @@ smtp_settings в модели.

На Oreilly есть статья, которая объясняет это довольно хорошо, хотя их код не совсем чистый. http://broadcast.oreilly.com/2009/03/using-multiple-smtp-accounts-w.html

...