加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Capybara测试中的Sendgrid错误

发布时间:2020-12-17 03:22:24 所属栏目:百科 来源:网络整理
导读:我正在尝试将测试追溯应用到一个非常复杂的应用程序(再也不会).我内置了Sendgrid功能,可以在用户注册时向他们发送电子邮件.因此,当我尝试测试注册页面时,它会尝试向我的example@example.net发送一条消息,我收到以下错误: Net::SMTPFatalError:550 Cannot re
我正在尝试将测试追溯应用到一个非常复杂的应用程序(再也不会).我内置了Sendgrid功能,可以在用户注册时向他们发送电子邮件.因此,当我尝试测试注册页面时,它会尝试向我的example@example.net发送一条消息,我收到以下错误:

Net::SMTPFatalError:
550 Cannot receive from specified address <my app's email>: Unauthenticated senders not allowed

但是,我不清楚这是否是我正在进行测试的问题(我正在遗漏的东西 – 我是新的),或者是一个更深层次的问题.自从我从GMail切换到Sendgrid后,当我在服务器上使用它时,我的应用程序应该发送的电子邮件遇到错误,但不是在线.我认为Sendgrid是一个专门的基于Web应用程序的电子邮件服务,但现在我猜我在配置文件中做错了.我设置我的配置的方式是这样的:

初始化/ mail.rb

# SendGrid Settings
ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',:port           => '587',:authentication => :plain,:user_name      => ENV['SENDGRID_USERNAME'],:password       => ENV['SENDGRID_PASSWORD'],:domain         => 'heroku.com'
}
ActionMailer::Base.delivery_method = :smtp

我的environment.rb文件中没有任何内容. This问题表明我可能应该将这些设置切换到environment.rb文件中,但是(显然,我不太了解配置文件),我想知道我是否应该为development.rb设置单独的设置,测试.rb等(另外,我试过那个开关,并没有改变错误).此外,如果有一个变通方法可以让capybara / rspec在测试期间忽略电子邮件请求(或以某种方式处理它是一个虚假的电子邮件地址并测试电子邮件而不尝试发送电子邮件).

谢谢!

解决方法

您应该能够通过config将ActionMailer设置为测试模式:

config.action_mailer.delivery_method = :test

或者在你的测试中:

ActionMailer::Base.delivery_method = :test

您还可以在testing mailers找到更多信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读