DEVISE: Net::SMTPSyntaxError: 501 Sender syntax error

DEVISE: Net::SMTPSyntaxError: 501 Sender syntax error

我在尝试使用 Devise 发送注册或密码重置电子邮件时遇到错误,Net::SMTPSyntaxError: 501 Sender syntax error

例子来自

'"Someone" <someone@mysite.com>'

邮寄者

class CustomDeviseMailer < Devise::Mailer
  include Roadie::Rails::Automatic

  layout 'email'

  default from: '"My Site" <me@mysite.com>'

  def confirmation_instructions(record, token, opts = {})
    check_white_label record, opts
    super
  end

  def reset_password_instructions(record, token, opts = {})
    check_white_label record, opts
    super
  end

  def unlock_instructions(record, token, opts = {})
    check_white_label record, opts
    super
  end

  def password_change(record, opts = {})
    check_white_label record, opts
    super
  end

  def check_white_label(record, opts)
    if white_label = record.player&.property&.management&.white_label_name
      opts[:from] = "#{white_label} <#{white_label}@mysite.com>"
      opts[:reply_to] = "#{white_label} <#{white_label}@mysite.com>"
    end
  end
end

您需要使用正确的发件人电子邮件格式: "Someone" <someone@mysite.com>

我能够通过删除双引号使其正常工作。

def check_white_label(record, opts)
  if white_label = record.player&.property&.management&.white_label_name&.delete('"')
    opts[:from] = "#{white_label} <#{white_label}@mysite.com>"
    opts[:reply_to] = "#{white_label} <#{white_label}@mysite.com>"
end

输出

'Someone <someone@mysite.com>'