发送电子邮件时测试失败:发送邮件需要SMTP To地址.设置消息smtp_envelope_to,to,cc或bcc地址

 百厌仔小菜一碟 发布于 2023-02-13 13:43

我有一个用户模型的after_create回调,它将向管理员发送一封电子邮件,以便他可以批准该帐户.它在开发模式下完美运行,但是当我运行我的Capybara/RSpec测试时,它失败并出现以下异常:

ArgumentError:
   An SMTP To address is required to send a message. Set the message smtp_envelope_to, to, cc, or bcc address.

我确实将config.action_mailer.delivery_method设置为:test in config/environments/test.rb.为什么它在测试环境中尝试使用SMTP?为什么这只发生在这个电子邮件传递(在模型中)但不与其他传递(使用设计宝石)?

以下是User模型的代码段:

class User < ActiveRecord::Base
  after_create :send_admin_mail
protected

  def send_admin_mail
    puts ActionMailer::Base.delivery_method  #prints test!
    ReviewMailer.new_user_waiting_for_approval(self).deliver
  end
end

jvnill.. 5

错误说你错过了一个to地址.由于您正在向管理员发送电子邮件,我猜这封电子邮件根据Rails环境而有所不同,您可以在某处配置此电子邮件.确保为测试环境配置了一个.

1 个回答
  • 错误说你错过了一个to地址.由于您正在向管理员发送电子邮件,我猜这封电子邮件根据Rails环境而有所不同,您可以在某处配置此电子邮件.确保为测试环境配置了一个.

    2023-02-13 13:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有