Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 水豚试验中的Sendgrid错误_Ruby On Rails_Ruby On Rails 3_Email_Testing_Rspec - Fatal编程技术网

Ruby on rails 水豚试验中的Sendgrid错误

Ruby on rails 水豚试验中的Sendgrid错误,ruby-on-rails,ruby-on-rails-3,email,testing,rspec,Ruby On Rails,Ruby On Rails 3,Email,Testing,Rspec,我正试图将测试追溯到一个相当复杂的应用程序(再也不会了)。我内置了Sendgrid功能,可以在新用户注册时发送电子邮件。因此,当我尝试测试注册页面时,它会尝试发送我的example@example.net通过电子邮件发送消息,我收到以下错误: Net::SMTPFatalError: 550 Cannot receive from specified address <my app's email>: Unauthenticated senders not allowed my e

我正试图将测试追溯到一个相当复杂的应用程序(再也不会了)。我内置了Sendgrid功能,可以在新用户注册时发送电子邮件。因此,当我尝试测试注册页面时,它会尝试发送我的example@example.net通过电子邮件发送消息,我收到以下错误:

Net::SMTPFatalError:
550 Cannot receive from specified address <my app's email>: Unauthenticated senders not allowed
my environment.rb文件中没有任何内容。问题表明,也许我应该将这些设置切换到environment.rb文件中,但是(很明显,我对配置文件理解得不太透彻),我想知道我是否应该为development.rb、test.rb等单独设置(另外,我尝试了切换,但没有改变错误)。此外,如果有一个解决方案,让capybara/rspec在测试过程中忽略电子邮件请求(或者以某种方式处理它是一个伪造的电子邮件地址,并在不发送电子邮件的情况下测试电子邮件)


谢谢

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

config.action_mailer.delivery_method = :test
或者在您的测试中:

ActionMailer::Base.delivery_method = :test

您还可以在

上找到更多信息,谢谢!当您说“在您的测试中”时,您的意思是在test.rb文件中吗?或者在我的用户页面规范rb文件中(我实际使用的是capybara)?是的,在您尝试发送电子邮件之前,直接从您的capybara规范中。太棒了!很有魅力,太棒了!如果您有时间,最好在您的配置文件(例如test.rb和development.rb)中执行此操作,这样您就可以让development实际发送一条消息,但可以使用类似于“确定将其放入配置文件”的内容捕获消息。它更安全,也能在rspec中工作。另外,你应该看看测试电子邮件的方法。
ActionMailer::Base.delivery_method = :test