将通过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