Rails,交易电子邮件和发件人验证

时间:2020-01-12 10:48:34

标签: ruby-on-rails sendinblue

我想使用Sendinblue从Rails Web应用程序发送交易电子邮件。
为了配置我的应用程序以使用Sendinblue,我对config/environments/production.rb进行了如下编辑(注意:fireworks.com仅作为示例):

Rails.application.configure do
  ...
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  host = 'fireworks.com'
  config.action_mailer.default_url_options = { host: host }
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp-relay.sendinblue.com',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDINBLUE_USERNAME'],
    :password       => ENV['SENDINBLUE_PASSWORD'],
    :domain         => 'fireworks.com',
    :enable_starttls_auto => true
  }
  ...
end

我需要任何宝石,例如sib-api-v3-sdk吗?
我想这颗宝石仅对使用Sendinblue API发送电子邮件有用。

在Sendinblue,我对我的域“ fireworks.com”进行了身份验证,并创建了一个发件人noreply@fireworks.com,该发件人将用于激活帐户。

app/mailers/application_mailer.rb

class ApplicationMailer < ActionMailer::Base
  default from: "noreply@fireworks.com"
  layout 'mailer'
end

为了让我使用此发件人,Sendinblue希望我进行验证(或验证)。
现在的关键是noreply@fireworks.com不存在。 Michael Hartl在他的教程中使用noreply@example.com,我将使用noreply@fireworks.com,因为我拥有fireworks.com域。
由于无法验证发件人,因此我认为唯一的解决方案是在服务器中创建noreply用户帐户,将Postfix配置为从Internet接收电子邮件,并将MX记录添加到我的DNS区域。
在收到确认电子邮件之前,我将保持此配置。
此解决方案是否必要?我还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

现在的要点是,noreply @ fireworks.com不存在。

在继续之前,我想指出,这最终不是一个好习惯。您需要一些地址来接收并识别反弹。

话虽如此,我只是查看了他们的文档,并说here,而不是验证单个电子邮件地址,您可以通过DNS条目,文件上传或通过向他们发送电子邮件来验证整个域。