Guardar a informação enviada e processada através de Mailgun no meu app
-
10-12-2019 - |
Pergunta
Eu configurei Heroku & Railgun, a fim de ser capaz de levar o conteúdo de e-mails e guarda-a.
Eu tenho a ponto de que quando os e-mails são enviados para mailgun, elas são encaminhadas para o meu app e vazio instaces das minhas mensagens modelo são criados automaticamente, no entanto, nenhum dos campos de e-mail estão sendo armazenados (apesar de ter um combinado de esquema (ex.a partir de:seqüência assunto:string, etc)).
O meu problema é que eu não consigo descobrir como tirar o conteúdo de uma solicitação HTTP POST e processá-lo para que cada mensagem é armazenada com a sua correspondente informação.Eu posso ver que ele está chegando no heroku (via heroku logs), mas é possível armazená-lo.Eu estou olhando para armazenar em primeiro lugar os seguintes campos:
- A partir de
- Assunto
- Anexos
No momento meu messages_controller.rb parece com isso
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
Alguma sugestão?
Eu tenho certeza que sua básico a compreensão do problema da minha parte, mas eu não consigo encontrar nada que realmente explica o que eu estou tentando fazer aqui.
Solução
O mailgunner aqui:
Nós não postar Trilhos de objetos, que nós publicaremos simples HTTP parâmetros como explicado nesta tabela:http://documentation.mailgun.net/user_manual.html#parsed-messages-parameters
Não há nenhuma "mensagem" parâmetro que você está tentando pegar com a params[:mensagem], você deve montar a sua mensagem com os componentes individuais como parmas[:Assunto], params[:corpo-simples], etc.
Também, desde o POST está vindo de um domínio diferente, você precisará desativar Trilhos de falsificação de solicitação de proteção para este controlador de ação:http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html