我正在使用我的rails 4 app。
在我让网站上线之前,我试图设置figaro,但就目前而言,我正在使用我的密码在production.rb管理我的测试电子邮件帐户。它不会长久不会这样,但我的设置遇到了问题。
我有两封admin_mailer电子邮件,当有人注册时会发送这些电子邮件。一封是给我的电子邮件,使用一个Gmail帐户让我知道他们已经注册。第二个是给用户的电子邮件,欢迎他们访问该网站。它应该是我设置的第二个电子邮件帐户发送的。
在我的produ.rb中,我有:
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: ###,
domain: 'gmail.com',
user_name: 'firstemailaddress@gmail.com',
password: '###',
authentication: 'plain',
enable_starttls_auto: true }
{
address: 'smtp.gmail.com',
port: ###,
domain: 'gmail.com',
user_name: 'secondemailaddress@gmail.com',
password: '####',
authentication: 'plain',
enable_starttls_auto: true }
在我的admin_mailer中,我将电子邮件的发件人设置为这些用户名中的一个或另一个。
但是,当我运行代码时,这两封电子邮件都是从第一个电子邮件地址发送的。
有没有人知道如何设置邮件,以便电子邮件从不同的地址发送?
谢谢
答案 0 :(得分:0)
我认为每个邮件应该与一个电子邮件帐户相关联。您可以创建两个单独的邮件程序,并在每个邮件中定义smtp设置,而不是在production.rb中。
例如,app / mailers / first_mailer.rb:
class FirstMailer < ActionMailer::Base
default from: 'firstemailaddress@gmail.com'
self.delivery_method = :smtp
self.smtp_settings = {
# your gmail smtp settings here
}
def some_email(user)
mail(to: user.email, subject: 'Subject')
end
end
您可以致电FirstMailer.some_email(user).deliver
发送此邮件。
同样,您然后创建另一个使用不同帐户的文件app / mailers / second_mailer.rb(以及不同的设置)。
可能有更干的方法可以做到这一点,但我知道这有用。