Je veux avoir la possibilité dans l'application de mes rails de recevoir des courriels entrants et les analyser d'une manière particulière.Rails Email analyse
incoming_controller.rb
class IncomingController < ApplicationController
skip_before_action :verify_authenticity_token, only: [:create]
skip_before_action :authenticate_user!, only: [:create]
def create
# Find the user
user = User.find_by(email: params[:sender])
# Find the topic
topic = Topic.find_by(title: params[:subject])
# Assign the url to a variable after retreiving it from
url = params["body-plain"]
# If the user is nil, create and save a new user
if user.nil?
user = User.new(email: params[:sender], password: "password")
user.save!
end
# If the topic is nil, create and save a new topic
if topic.nil?
topic = Topic.new(title: params[:subject], user: user)
topic.save!
end
bookmark = topic.bookmarks.build(user: user, url: url, description: "bookmark for #{url}")
bookmark.save!
# Assuming all went well.
head 200
end
end
En utilisant ce contrôleur, je ne peux extraire 3 valeurs = utilisateur: expéditeur, sujet: sujet et url "corps simple".
Comment puis-je ajouter une 4ème valeur dans l'email pour analyser une: description?
Comment définir le texte dans l'e-mail afin qu'il soit reconnu comme la description? Par exemple, je définis l'objet de l'e-mail pour égaler le sujet. Que puis-je définir à partir de l'e-mail pour égaler la description? – davefogo
Cela dépend de ce qui appelle votre contrôleur ... Je suppose que vous avez une sorte de configuration de réception de courrier électronique qui analyse les emails dans un hachage et soumet à votre action de contrôleur? Si vous pouvez contrôler cela, vous pouvez ajouter le paramètre au hachage. Si vous ne pouvez pas faire cela, vous pouvez l'ajouter dans le corps de l'e-mail comme je l'ai expliqué dans ma réponse éditée. – rmhunter
J'essaye la méthode que vous avez décrite dans la réponse mais l'URL et la description ne sont pas choisis par les params. Il les lit tous les deux comme nuls. – davefogo