2016-05-23 15 views
2

私のproductiondevelopmentの環境で正常に動作するメールとパスワードを使用しています。2つのメールと信用状を使用してメールを送信します

ActionMailer::Base.smtp_settings = { 
    :user_name => '[email protected]', 
    :password => '******', 
    :domain => 'gmail.com', 
    :address => 'smtp.gmail.com', 
    :port => 587, 
    :authentication => :plain 
} 

今、私はboth.currently私は[email protected]を使用していますが、私はこれを動的に変更したいと可能な本ですproductiondevelopmentで電子メールを送信するために2通の異なる電子メールを利用したいですレールで?

答えて

2

ここに2つのバージョンの資格情報がある場合は、単純にすることはできませんか? like

if Rails.env.production? 
    ActionMailer::Base.smtp_settings = { 
    :user_name => '[email protected]', 
    :password => '******', 
    :domain => 'gmail.com', 
    :address => 'smtp.gmail.com', 
    :port => 587, 
    :authentication => :plain 
    } 
else 
    <other credentials> 
end 

資格情報を動的に変更するには、設定を保存して読み込む方法が必要です。私はsmtp_settingsにマップするモデルを作成するので、ActionMailer::Base.smpt_settings = mail_settingsを呼び出すこともできますし、それを呼び出すこともできます。次に、電子メールを送信する前にそれを呼び出す必要があり、別の資格情報を保存する管理ページがあります。

+0

私の質問は私が電子メールを送信するために使用している動的に電子メールと資格情報を変更することでした。私が '[email protected]'によって電子メールを送ろうとしているとしたら、明日私は管理パネルかダッシュボードからこれを変更したいと思います。 –

+0

答えを修正しました。 – xyious

0

メーラ内にfromのアドレスを設定することができます。あなたは以下のようなものにメールを送るようにコードを変更することができます。

mail(
    from: "<your dynamically set mail id here>" 
    to: "<[email protected]>", 
    subject: "Mail subject" 
) 

また、私はSendgrid/AWS SNSのようにSMTPサービスを使用するためにあなたをお勧めします。 Gmailは、多数のメールの後にメールの送信をブロックする傾向があります。

+0

私が当時から使っているのであれば、私たちは問題の生産と環境で与えられた電子メールの構成の平均です。そこからそれらを取り除くのですか? –

+0

ここでsmtpプロバイダとしてgmailを使用しています。それを削除することはできません。あなたは 'from'メールアドレスの代わりに上記のGmailアカウントからメールを送信します – Sebin

+0

私はここで使用している電子メールは、電子メールを送信するために使用されません大丈夫ですか?または: "<あなたの動的に設定されたメールID>"が使用されますか? –

関連する問題