Ciao, scrivo per porvi un problema che sto cercando di risolvere, ma
vorrei anche pareri esterni per capire quanto sia fattibile la cosa.
Ho realizzato un middleware (scritto in rails) per l’invio delle mail da
diverse app. Il middleware si preoccupa di inserire nelle mail anche
un’immagine per tracciare le aperture e le call to actions. Ora
ovviamente questa immagine tiene conto del destinatario per riconciliare
le informazioni. La mia domanda è: come posso fare ad aggiungere dei cc
e bcc e tracciare questi separatamente dal destinatario?
La mia situazione è decisamente complicata. Se siete curiosi vi spiego
il motivo per cui ho creato il middleware in casa, ma da quello che ho
letto mandrill, mailgun, postageapp ecc… gestiscono il cc come invii
separati per evitare appunto l’overlapping delle statistiche (che poi
sarebbe la mia soluzione di fallback)
Infatti immaginavo. Magari c’era qualche sistema (ad esempio un
interceptor) che mi avrebbe permesso di capire a chi sarebbe giunta la
mail, oppure qualche workaround…
Mi sa che non lo puoi fare, se non facendo anche tu degli invii
separati. Al momento dell’apertura dell’email il client di posta non
credo ti mandi nessuna variabile con cui poter capire chi dei
destinatari sta aprendo l’email. Tutto quello che ti arriva è una URL,
quella dell’immagine appunto, che è uguale per tutti se mandi una sola
email. Penso sia questa la ragione per cui mandrill fa quello che hai
descritto.
Mi sa che non lo puoi fare, se non facendo anche tu degli invii
separati. Al momento dell’apertura dell’email il client di posta non
credo ti mandi nessuna variabile con cui poter capire chi dei
destinatari sta aprendo l’email. Tutto quello che ti arriva è una URL,
quella dell’immagine appunto, che è uguale per tutti se mandi una sola
email. Penso sia questa la ragione per cui mandrill fa quello che hai
descritto.
Ciao Massimo,
Io lavoro per Litmus, noi offriamo un servizio del genere.
Il prodotto in grado di fornirti dati sui singoli forwards e prints. http://cl.ly/image/3F0U2g191u1Q
Ciao Luca,
senza svelare segreti industriali, ci puoi dire come funziona Come fa
Litmus a ricevere degli eventi che si verificano su un client, tipo
“Printed”?
In ogni caso chapeau a Litmus per il loro servizio (che ho potuto usare
con
molta soddisfazione riguardo il test delle email) e per la loro
documentazione!
Ok per il forwards e prints, ma se io invio a [email protected] mailto:[email protected] e in cc a [email protected] mailto:[email protected] voi tracciate le aperture di indirizzo1 e
indirizzo2 separatamente, o sono cumulate su indirizzo1? E se le
tracciare separatamente Rimane effettivamente un invio singolo con
lheader per il cc, o fate due invii distinti rimuovendo il cc?
@Massimo
Sono interessato a mettere in piedi qualcosa del genere, hai qualche
dritta da darmi?
Per il tuo problema: se ti riferisci all’interceptor di rails non serve
a niente in questo caso.
Per capire chi sta leggendo l’email credo serva l’indirizzo del singolo
ma non saprei come recuperarlo. Però dovresti riuscire a sapere quando
tutti hanno letto o sbaglio?
Il giorno 19/feb/2015, alle ore 11:24, Marco M. [email protected] ha scritto:
@Massimo
Sono interessato a mettere in piedi qualcosa del genere, hai qualche
dritta da darmi?
Ciao, allora ti spiego i punti salienti del mio middleware:
Ho creato in interceptor che permette di scegliere dinamicamente un
server SMTP da usare. In questo modo posso creare N configurazioni SMTP
e scegliere a run time quale usare. Cos se ci dovesse essere un down del
server SMTP attuale, posso switchare al volo. Il prossimo passo sar la
possibilit di bilanciare i serve, ad esempio con round robin.
La gestione di accessi via api. In questo modo puoi controllare con
esattezza quello che faranno i client.
La possibilit di creare quelli che io ho chiamato hook. In sostanza
si tratta di oggetti che rappresentano le mail da inviare con il
supporto multi lingua. Questi non sono altro che dei contenuti che vanno
a sostituire i placeholder nei template.
Ad esempio se il template prevede un titolo un testo e una firma, lhook
avr tre campi testuali che sono appunto titolo, testo e firma.
Gli hook a loro volta possono contenere dei placeholder che verranno
sostituiti utilizzando le variabili che arrivano tramite le richieste
api
La possibilit di creare call to actions personalizzate che possono
essere inserite tramite placeholder negli hook
Tutta la gestione delle statistiche aperture e click sulle cta (nel
mio caso ho anche implementato la geo localizzazione degli ip)
La gestione degli invii fatta con sidekiq e gestisce il retry solo
se lerrore un errore di rete per evitare di spammare i clienti se ci
sono errori a valle dellinvio ma prima della termine del job che di
fatto causano un successivo invio.
Gemma Ruby e plugin PHP per wrappare le chiamate API al Middleware
Questo un esempio che ti fa capire come avviene una chiamata per linvio
di una mail:
Per il tuo problema: se ti riferisci all’interceptor di rails non serve
a niente in questo caso.
Per capire chi sta leggendo l’email credo serva l’indirizzo del singolo
ma non saprei come recuperarlo. Per dovresti riuscire a sapere quando
tutti hanno letto o sbaglio?
Io al momento (se non splitto i cc in invii singoli) posso solo sapere
se la mail stata aperta o meno, ma non posso sapere con esattezza da
chi. Perci se o un destinatario e 2 cc, se rilevo 3 aperture non detto
che siano state effettuate dai tre indirizzi diversi.
le limitazioni dichiarate da Litmus, che confermano alcuni ragionamenti
che avevo fatto in passato, e generalmente parlando, non scorgo
soluzioni magiche al tracciamento (lettura/stampa/cancellazione) di
e-mail “transazionali”, se si parte dal requisito che il client mail
possa essere “qualsiasi cosa”.
Tempo addietro, mi ero malsanamente in testa di inviare degli ordini
e-commerce via e-mail, ed avere specie di “ricevuta di ritorno”.
Per tracciare l’avvenuta ricezione dell’ordine sul client (un raspberry
stampava l’ordine su carta), avevo concluso che la soluzione “giusta”
fosse mandare un feedback HTTP di “avvenuta ricezione”… In quel caso
il client era una applicazione Ruby di cui avevo controllo perchè l’ho
scritta io… BTW, mio rozzo codice per leggere mail IMAP IDLE: https://gist.github.com/solyaris/b993283667f15effa579
P.S. ok ok, mandare email per transazioni “realtime” non è fosse il
massimo della furbizia. Ho optato poi per soluzione just-HTTP
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.