You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails SMTP配置报错550 Sender verify failed求助

问题:发送邮件出现550 Sender verify failed (Net::SMTPFatalError)错误

在Rails项目配置SMTP发送邮件时遇到该错误,项目的SMTP配置如下:

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host: 'MIIP' }
config.action_mailer.smtp_settings = {
  address: 'myadress.com,  # 注意:引号未闭合,且与控制台使用的地址拼写不一致
  user_name: 'noreply@myadresswerk.com',
  password: 'password'  # 注意:缺少逗号,存在Ruby语法错误
  port: 587,
  ssl_context_starttls: OpenSSL::SSL::SSLContext.new.tap do |ctx|
    ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
  end,
  authentication: :login,
  openssl_verify_mode: 'none'
}

但直接在Rails控制台执行以下代码时,邮件发送成功:

smtp = Net::SMTP.new('myaddr.com', 587)
smtp.start('localhost', 'noreply@myaddr.com', 'password', :login) do |smtp|
  smtp.send_message 'Hello world!', 'noreply@myaddr.com', 'receiver@gmail.com'
end

额外说明:必须设置OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE,否则会出现SSL_connect returned=1 errno=0 state=error: certificate verify failed (hostname mismatch)错误。


解决办法

对比成功的控制台代码和Rails配置,问题集中在以下几点,逐一修正即可:

  1. 修正配置中的语法与拼写错误

    • 补充address字段的闭合引号:address: 'myaddr.com'(统一为控制台使用的正确地址拼写)
    • 在password: 'password'末尾添加逗号,修复Ruby语法解析错误
  2. 添加domain参数匹配HELO主机名
    控制台代码中smtp.start的第一个参数'localhost'是SMTP握手时的HELO/EHLO主机名,Rails默认会用default_url_options[:host](即'MIIP'),而该主机名不被SMTP服务器认可,导致发件人验证失败。需在smtp_settings中显式指定:

    domain: 'localhost'
    
  3. 简化冗余的SSL配置
    配置中ssl_context_starttls和openssl_verify_mode重复设置了证书验证规则,保留其中一种即可,推荐用更简洁的写法:

    openssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
    

修正后的完整SMTP配置示例:

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host: 'MIIP' }
config.action_mailer.smtp_settings = {
  address: 'myaddr.com',
  user_name: 'noreply@myadresswerk.com',
  password: 'password',
  port: 587,
  domain: 'localhost',
  authentication: :login,
  openssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
}

修改完成后重新测试邮件发送,即可解决550 Sender verify failed错误。


内容的提问来源于stack exchange,提问作者faa_q

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:45:19