2 votes

Sauvegarde des informations envoyées par courriel et traitées par Mailgun dans mon application

J'ai mis en place Heroku et Railgun afin de pouvoir récupérer le contenu des emails et le stocker.

J'ai réussi à faire en sorte que lorsque des emails sont envoyés à mailgun, ils sont transférés à mon application et des instants vides de mon modèle de messages sont créés automatiquement, cependant, aucun des champs de l'email n'est stocké (malgré un schéma correspondant (par exemple, from:string subject:string etc)).

Mon problème est que je n'arrive pas à comprendre comment prendre le contenu d'une requête HTTP POST et le traiter de manière à ce que chaque message soit stocké avec les informations correspondantes. Je peux voir qu'il arrive dans heroku (via les logs heroku), mais je ne peux pas le stocker. Je cherche à stocker d'abord les champs suivants :

  • En
  • Sujet
  • Pièces jointes

Pour l'instant, mon fichier messages_controller.rb ressemble à ceci

    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

Des suggestions ?

Je suis sûr qu'il s'agit d'un problème de compréhension de base de ma part, mais je n'arrive pas à trouver quelque chose qui explique vraiment ce que j'essaie de faire ici.

4voto

Ev Kontsevoy Points 56

Ici, le postier :

Nous ne postons pas d'objets Rails, mais de simples paramètres HTTP, comme expliqué dans ce tableau : http://documentation.mailgun.net/user_manual.html#parsed-messages-parameters

Il n'y a pas de paramètre "message" que vous essayez de saisir avec params[:message], vous devriez assembler votre message avec des composants individuels comme parmas[:Subject], params[:body-plain], etc.

De plus, comme le POST provient d'un domaine différent, vous devez désactiver la protection contre la falsification des requêtes Rails pour cette action du contrôleur : http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X