2012-11-07 16 views
5

Wie kann ich den Mailer serialisieren, damit er für die weitere Verwendung gespeichert werden kann?Wie serialisieren und deserialisieren Sie Mailer?

Die serialisierten Daten sollten getrennt und autark sein, damit sie auf einem separaten Computer geliefert werden können, der diese Nachricht liefern sollte (ohne Kenntnis über die Datenbank oder irgendetwas anderes).

Antwort

7

Angenommen, Sie in der Regel E-Mails mit diesem schicken: es liefert

MyMailer.some_email(...).deliver 

Stattdessen Sie es in einen String und übertragen Sie die Zeichenfolge auf einen anderen Server konvertieren:

raw_mail = MyMailer.some_email(...).to_s 

auf einem anderen Server senden, die E-Mail:

Mail.new(raw_mail).deliver 
+0

Dies scheint zu arbeiten, außer dass es keine 'Mail # send' Methode gibt. Ich habe versucht, die "Mail # deliver", aber ich denke, es wählt nicht die SMTP-Einstellungen des Mailers. –

+0

Sorry, es ist ein Tippfehler. Du hast Recht, wenn Mail # liefert. Ich weiß nicht, wie Sie versuchen, die E-Mails von der separaten Maschine zu senden. Aber ich denke, dass Sie SMTP-Einstellungen auf den separaten Computer kopieren müssen. – Yanhao

+0

Der separate Computer hostet die gleiche Rails App. Also ich denke, es sollte es aufnehmen. Aber ich bin mehr neugierig auf die '# to_s' Methode beim Mailer. Ist dokumentiert, dass es vollständige rohe E-Mails erstellt, die versandfertig sind? Würde es auch Dinge wie Anhänge usw. behandeln? –

Verwandte Themen