Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 Rails 6 ActionMailbox,邮枪返回404_Ruby_Mailgun_Ruby On Rails 6 - Fatal编程技术网

Ruby Rails 6 ActionMailbox,邮枪返回404

Ruby Rails 6 ActionMailbox,邮枪返回404,ruby,mailgun,ruby-on-rails-6,Ruby,Mailgun,Ruby On Rails 6,我正在Rails 6上开发一个内部费用应用程序,用ActionMailbox代替Excel电子表格。由于我们的许多收据现在都是电子邮件形式(例如机票),我们的想法是用户只需将收据转发到应用程序,它就会自动与费用条目关联 我使用带有Mailgun的ActionMailbox作为电子邮件接收器。正如Gorails Pro教程所建议的那样,我已经使用localtunnel将我的应用程序公开给了普通互联网。我已经使用Mailgun的设备向我的应用程序发送了一封测试电子邮件 我的邮政地址是: https:

我正在Rails 6上开发一个内部费用应用程序,用ActionMailbox代替Excel电子表格。由于我们的许多收据现在都是电子邮件形式(例如机票),我们的想法是用户只需将收据转发到应用程序,它就会自动与费用条目关联

我使用带有Mailgun的ActionMailbox作为电子邮件接收器。正如Gorails Pro教程所建议的那样,我已经使用localtunnel将我的应用程序公开给了普通互联网。我已经使用Mailgun的设备向我的应用程序发送了一封测试电子邮件

我的邮政地址是:

https://xxxxxxxx.localtunnel.me/rails/action_mailbox/mailgun/inbound_emails/mime
然而,我遇到了一个问题,来自Mailgun的传入电子邮件没有得到正确处理,但返回时出现了404错误。Rails日志显示作为POST接收的消息。日志中的最后两个条目是:

2019-10-15T07:50:07.646Z 10260 TID-gn609ivg8 INFO: Filter chain halted as :ensure_configured rendered or redirected
2019-10-15T07:50:07.646Z 10260 TID-gn609ivg8 INFO: Completed 404 Not Found in 0ms (ActiveRecord: 0.0ms | Allocations: 144)
我的配置是: config/routes.rb

Rails.application.routes.draw do
为:用户设计
资源:类别
资源:费用索赔吗
在::member上获取“导出excel”
在::collection上发布“barclay_csv_导入”
结束
资源:费用项目
根“费用#索赔#索引”
#启用sidekiq控制台。
需要“sidekiq/web”
mount Sidekiq::Web=>'/Sidekiq'
结束
config/application.rb

模块费用
类应用程序
config/environments/development.rb

Rails.application.configure do
[…删除了大量不相关的内容]
#此处指定的设置将优先于config/application.rb中的设置。
config.action\u mailer.default\u url\u options={host:'0.0.0',port:3000}
config.action\u mailer.delivery\u method=:smtp
config.action_mailer.smtp_settings={地址:“0.0.0.0”,端口:1025}
#将活动作业队列适配器设置为Sidekiq/Redis
#config.active\u job.queue\u适配器=:sidekiq
#或者,在调试时,您可以设置为串联(或:异步)
config.active\u job.queue\u适配器=:inline
#如果邮递员发不来,你也不在乎。
config.action\u mailer.raise\u delivery\u errors=false
config.action\u mailer.perform\u caching=false
#设置以便我们可以测试和设计自注册
config.action\u mailer.default\u url\u options={host:'localhost',port:3000}
#允许来自本地隧道的流量
config.hosts:收据
结束
app/mailboxs/receipt\u mailbox.rb

class ReceiptMailboxmail对象
#入站邮件=>ActionMailboxe邮件记录
def过程
结束
结束

事实证明这是最愚蠢的错误。在config/application.rb中,最终配置错误。我需要用
:mailgun
替换
:mailgun

    # Set the ActionMailbox ingress here for now.
    config.action_mailbox.ingress = :mailgun
不幸的是,Rails错误消息在这里没有太大帮助

为了提供更多信息,ActionMailbox为不同的电子邮件处理者定义了许多不同的路由。因此,电子邮件处理者将传入电子邮件发送到的URL定义了要使用的控制器。在收到电子邮件时,Rails会检查邮件发送到的URL是否与配置中设置的
ingress
类匹配。如果不是,你就会得到我看到的错误