将通过Mailgun通过电子邮件发送和处理的信息保存到我的应用中

我已经设置了Heroku和Railgun,以便能够从电子邮件中获取内容并存储它。

我已经明白,当电子邮件被发送到mailgun时,它们会被转发到我的应用程序,并且我的消息模型的空实例会自动创建,但是,电子邮件中没有任何字段被存储(尽管有匹配的schema(例如from:string subject:string etc))。

我的问题是我无法弄清楚如何获取HTTP POST请求的内容并对其进行处理,以便每条消息都存储有相应的信息。 我可以看到它进入heroku(通过heroku日志),但无法存储它。 我希望首先存储以下字段:

  • 学科
  • 附件

目前我的messages_controller.rb看起来像这样

def create @message = Message.new(params[:message]) respond_to do |format| if @message.save format.html { redirect_to @message, notice: 'Message was successfully created.' } format.json { render json: @message, status: :created, location: @message } else format.html { render action: "new" } format.json { render json: @message.errors, status: :unprocessable_entity } end end end 

有什么建议?

我确信这是我的基本理解问题,但我似乎无法找到任何真正解释我在这里尝试做什么的事情。

邮件枪在这里:

我们不发布Rails对象,我们发布简单的HTTP参数,如下表所述: http : //documentation.mailgun.net/user_manual.html#parsed-messages-parameters

没有“消息”参数,你试图用params [:message]抓取,你应该用parmas [:Subject],params [:body-plain]等各个组件组装你的消息。

此外,由于POST来自不同的域,您需要为此控制器操作禁用Rails请求伪造保护: http : //api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html