2009-08-08 4 views
3

Hallo Ruby/Rails/Merb-Entwickler!Best Practices zum Parsen von E-Mails mit Ruby

Derzeit arbeite ich an einem Webprojekt, das eine Funktion haben wird, um mit Kunden per E-Mail zu kommunizieren. Also, sagen wir, ich habe ein Konto für einen Kunden in meinem Admin-Panel erstellt und dann ein Thema erstellt, um Fragen, Aufgaben und andere arbeitsbezogene Dinge zu diskutieren. So erhält der Kunde eine E-Mail-Benachrichtigung. Außerdem kann sich der Kunde in das System einloggen und Antworten innerhalb des Systems schreiben. Aber was ich versuche zu tun ist: Nachdem der Kunde auf die Benachrichtigung geantwortet hat (die einen speziellen Identifikationscode der Nachricht enthält), muss ich diese Antwort in den Thread importieren. Es macht die Kommunikation zwischen den Kunden wirklich bequem.

Die Lösung muss auch mit Dateianhängen arbeiten.

Die einzige Möglichkeit, die ich jetzt tun kann, ist die Entwicklung eines speziellen Mail-checking-Daemon, der E-Mails vom Benachrichtigungskonto holt und Daten automatisch zur zentralen Datenbank hinzufügt. Wahrscheinlich ist es keine beste Idee.

Ich habe ein solches Beispiel in 37signals BaseCamp-Software gesehen.

Frage: Was machen die Best Practices?

Antwort

1

Ich glaube, dass Ihre eigene Lösung, das Mail-Abruf-Skript, der beste Weg wäre, dies zu tun. Das Piping oder anderweitige direkte Empfang der E-Mails von Ruby birgt das Risiko, Nachrichten zu verlieren, wenn in Ihrer Anwendung ein Fehler auftritt. Lassen Sie einen Mail-Server das schwere Heben durchführen und ab und zu abfragen.

Ruby kommt mit Net::IMAP Unterstützung in der Standardbibliothek.

1

Ein weiterer Ansatz ist die E-Mail von einem MTA (Postfix, Sendmail) direkt aus der Alias-Datei in ein Programm zu leiten, das Sie schreiben, um die E-Mail zu verarbeiten und in Ihre Anwendung zu schreiben.

/etc/aliases: 
your-application-email: /path/to/your/email/receiving/script 

Der Mailman Mailinglistenmanager verwendet diesen Ansatz. Der Nachteil besteht darin, dass auf die Mail-Konfiguration des Systems zugegriffen werden muss. Wahrscheinlich kein Problem mit dem Umfang Ihrer Anwendung.

0

(unvollständige Antwort ... Entschuldigung) Unser Team nutzt Redmine E-Mail-Überwachung-Funktion, die wirklich gut funktioniert. Es scheint alles zu implementieren, was Sie oben erwähnt haben, mit Ausnahme von Anhängen.

Sie wahrscheinlich, dass die Funktionalität mit sehr wenig Gefummel leihen könnte :-)

redmine.org