Ich möchte in meiner Rails-Anwendung die Möglichkeit haben, eingehende E-Mails zu empfangen und sie auf eine bestimmte Art zu parsen.Rails Email Parsing
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
diesen Controller verwenden kann ich extrahieren nur 3 Werte = user: Absender, Thema: Thema und url "body-Ebene".
Wie kann ich einen vierten Wert in der E-Mail hinzufügen, um eine: description zu analysieren?
Wie würde ich den Text in der E-Mail so einstellen, dass er als Beschreibung erkannt wird? Zum Beispiel setze ich den Betreff der E-Mail dem Thema gleich. Was kann ich von der E-Mail einstellen, um der Beschreibung zu entsprechen? – davefogo
Das hängt davon ab, was Ihren Controller anruft ... Ich nehme an, Sie haben eine Art E-Mail, die das Setup empfängt, das die E-Mails in einen Hash zerlegt und an Ihre Controlleraktion sendet? Wenn Sie das kontrollieren können, können Sie den Parameter zum Hash hinzufügen. Wenn Sie das nicht können, können Sie es in den E-Mail-Text einfügen, wie ich es in meiner bearbeiteten Antwort erklärt habe. – rmhunter
Ich versuche die Methode, die Sie in der Antwort beschrieben haben, aber URL und Beschreibung werden nicht von den Parametern ausgewählt. Es liest sie beide als Null. – davefogo