Gmail Apps for Domainアカウントを使用して、標準の自動メール(ユーザー登録、パスワードの忘れ、新しいコメントの管理者への通知など)のためのメールアプリケーションをレールアプリケーション内で送信していますが、1日あたり500件のメールが心配ですGoogleが設定した制限。GmailのSMTP送信送信制限を回避する/回避するにはどうすればよいですか?
制限を克服する方法の1つは、複数のユーザーアカウントを使用することです。
私は10個の追加のgmailユーザーアカウント(noreply1、noreply2、noreply3など)を設定しました。これらのアカウントのいずれかが24時間以内に500個のメールを送信し、アイドルアカウントそれに応じて。
:user_name
の値をActionMailer::Base.smtp_settings
に動的に設定するにはどうすればよいですか?
は、ここに私の現在の設定です - 注:これは私が明示的に設定してるにもかかわらず、毎回「noreply1」から送信します。user_nameと:
--- development.rb ---
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.com",
:authentication => :plain,
:user_name => "[email protected]",
:password => "password"
}
--- account.rb --- (MODEL, called via a callback)
after_create :send_welcome_email
...
def send_welcome_email
#ActionMailer::Base.smtp_settings[:user_name] = '[email protected]'
ActionMailer::Base.smtp_settings.merge!({:user_name => "[email protected]"})
SubscriptionNotifier.deliver_welcome(self)
end
--- subscription_notifier.rb --- (MODEL)
class SubscriptionNotifier < ActionMailer::Base
def welcome(account)
@sent_on = Time.now
@subject = "Welcome to the App"
@recipients = account.email
@from = "[email protected]"
@body = { :account => account }
end
end
ActionMailer :: Base.smtp_settingsハッシュを変更するというworkmad3の考え方は正しいと思いますが、私は動的に設定されたuser_nameキーでそのハッシュの値を再読み込みするためのレールを取得する方法を理解できません。 –
どのバージョンのRailsを使用していますか?コントローラアクションでActionMailer :: Base.smtp_settings [:user_name]を動的に変更することは、2.3.2で私にとってはうまくいきます。 (少なくとも、ハッシュが変更されました。私はメールを送信しようとはしませんでした。) –
これは奇妙なことです - ハッシュキーの値は変更されますが、emailは私のdevelopment.rbファイルにある元のuser_nameを使用して送信されます –