2012-11-07 9 views
5

Come posso serializzare il mailer in modo che possa essere conservato per un ulteriore utilizzo?Come serializzare e deserializzare i mailer?

I dati serializzati devono essere disconnessi e autosufficienti per essere consegnati su una macchina separata che dovrebbe recapitare quel messaggio (non conoscendo il database o altro).

risposta

7

Supponiamo che di solito inviare email con questo:

MyMailer.some_email(...).deliver 

Invece di consegnarlo, è possibile convertire in una stringa e trasferire la stringa a un altro server:

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

Su un altro server, inviare l'email:

Mail.new(raw_mail).deliver 
+0

Questo sembra funzionare tranne che non esiste un metodo 'Mail # send'. Ho provato il 'Mail # deliver', ma penso che non scegli le impostazioni SMTP del mailer. –

+0

Siamo spiacenti, è un errore di battitura. Hai ragione riguardo a Mail # deliver. Non so come stai cercando di inviare le e-mail dalla macchina separata. Ma penso che sia necessario copiare le impostazioni SMTP sulla macchina separata. – Yanhao

+0

La macchina separata ospita la stessa app Rails. Quindi penso che dovrebbe prenderlo. Ma sono più curioso del metodo '# to_s' su mailer. È documentato che crea una e-mail completa pronta per essere inviata? Inoltre gestirà cose come allegati ecc? –

Problemi correlati