Rails 4 多个 SMTP 配置
Rails 4 multiple SMTP configurations
我的 rails 4 应用程序在使用 Mailgun
或 Sendgrid
时工作正常。我想同时使用前者。发送订单时要经过 Sendgrid
以及创建工单时要经过 Mailgun
.
我有两个帐户,我的 config/environments/development.rb
看起来像:
config.action_mailer.smtp_settings = {
address: 'smtp.mailgun.org',
port: 587,
user_name: 'some_username',
password: 'some_password',
authentication: 'plain',
enable_starttls_auto: true }
如果我用 Sengrid smtp_settings
替换,它会从 Sendgrid
开始发送,但正如我提到的,我想要两者并选择哪个用于特定功能。
谢谢
针对不同的环境,您可以设置不同的电子邮件配置
在 config/environments/staging.rb
一项邮件服务中,
在config/environments/production.rb
秒内,
对于config/environments/development.rb
我建议你使用letter_opener
然后在不同的环境模式下您将使用适当的邮件设置
编辑
我想这是个错误的决定,但是
如果你想通过两个邮件服务发送相同的邮件,你可以重新定义 ActionMailer::Base.smtp_settings
.
只需创建两个邮件程序并在邮件程序中重新定义设置即可:
第一
class MailgunUserMailer < ApplicationMailer
ActionMailer::Base.smtp_settings = {
address: 'smtp.mailgun.org',
port: 587,
user_name: 'some_username',
password: 'some_password',
authentication: 'plain',
enable_starttls_auto: true }
def created(@user)
.....
第二个
class MandrillUserMailer < ApplicationMailer
ActionMailer::Base.smtp_settings = {
address: 'smtp.mandrill.com',
port: 587,
user_name: 'some_username',
password: 'some_password',
authentication: 'plain',
enable_starttls_auto: true }
def created(@user)
.....
并且您可以通过 2 个提供商发送相同的电子邮件:
MailgunUserMailer.created.deliver
MandrillUserMailer.created.deliver
我的 rails 4 应用程序在使用 Mailgun
或 Sendgrid
时工作正常。我想同时使用前者。发送订单时要经过 Sendgrid
以及创建工单时要经过 Mailgun
.
我有两个帐户,我的 config/environments/development.rb
看起来像:
config.action_mailer.smtp_settings = {
address: 'smtp.mailgun.org',
port: 587,
user_name: 'some_username',
password: 'some_password',
authentication: 'plain',
enable_starttls_auto: true }
如果我用 Sengrid smtp_settings
替换,它会从 Sendgrid
开始发送,但正如我提到的,我想要两者并选择哪个用于特定功能。
谢谢
针对不同的环境,您可以设置不同的电子邮件配置
在 config/environments/staging.rb
一项邮件服务中,
在config/environments/production.rb
秒内,
对于config/environments/development.rb
我建议你使用letter_opener
然后在不同的环境模式下您将使用适当的邮件设置
编辑
我想这是个错误的决定,但是
如果你想通过两个邮件服务发送相同的邮件,你可以重新定义 ActionMailer::Base.smtp_settings
.
只需创建两个邮件程序并在邮件程序中重新定义设置即可:
第一
class MailgunUserMailer < ApplicationMailer
ActionMailer::Base.smtp_settings = {
address: 'smtp.mailgun.org',
port: 587,
user_name: 'some_username',
password: 'some_password',
authentication: 'plain',
enable_starttls_auto: true }
def created(@user)
.....
第二个
class MandrillUserMailer < ApplicationMailer
ActionMailer::Base.smtp_settings = {
address: 'smtp.mandrill.com',
port: 587,
user_name: 'some_username',
password: 'some_password',
authentication: 'plain',
enable_starttls_auto: true }
def created(@user)
.....
并且您可以通过 2 个提供商发送相同的电子邮件:
MailgunUserMailer.created.deliver MandrillUserMailer.created.deliver