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

Rails, transactional email and sender validation

我想使用 Sendinblue 从我的 Rails 网络应用程序发送交易电子邮件。
为了配置我的应用程序以使用 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

我需要 gem,比如 sib-api-v3-sdk 吗?
我想这个 gem 仅对使用 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 区域。
在收到验证电子邮件之前,我会保持此配置。
这个解决方案有必要吗?我还有其他选择吗?

Now the point is that noreply@fireworks.com does not exist.

在继续之前,我想指出这最终不是一个好的做法。您需要一些地址来接收和识别退回邮件。

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