2010-01-19 11 views
14

La mia azienda ha un sito Web realizzato con PHP. Utilizziamo la funzionalità e-mail PHP integrata per inviare migliaia di e-mail agli abbonati su base giornaliera.Quali metodi esistono per l'impostazione di un sistema di notifica e-mail di grandi dimensioni?

Questa è una pessima idea. Soffoca il nostro server e impiega ore per completare l'intero batch.

Ora ho esaminato servizi di posta di massa come MailChimp (che sostituisce il nostro attuale sistema di invio della stessa email a molte persone), ma quello che penso che mi piacerebbe davvero fare è impostare un po'- sofisticato sistema di notifica.

Piuttosto che inviare una e-mail di massa a ogni persona ogni volta che succede qualcosa di importante, vorrei che i clienti fossero in grado di personalizzare la velocità e il contenuto delle e-mail che ricevono.

Anche usando questa nuova idea, stiamo parlando di MOLTE email inviate.

Quindi la mia domanda è molto specifica: ho una vaga idea di come costruire il sistema internamente, ma qual è il modo migliore per inviare tutte queste e-mail?

punti pallottola da considerare:

  • volte contenuti email sono identici tra i destinatari, ma molti di loro saranno personalizzati per utente (scelgono quello che ricevi notifiche, ed a volte è aggregate).
  • Desidero un sistema che non intaccherà il server e verrà completato in un lasso di tempo accettabile. Non mi dispiace andare con un servizio di terze parti (anche a pagamento) se è quello che prenderà.
  • Il sistema dovrebbe connettersi facilmente a PHP, o l'API o qualsiasi altra cosa dovrebbe essere relativamente facile per me chiamare dal proprio server web tipico.
  • Abbiamo un server dedicato e il controllo completo su di esso (in modo che possiamo installare app, servizi, qualunque sia).
  • Qualsiasi tipo di informazioni di tracciamento dettagliate (apertura, clic, ecc.) È un vantaggio enorme.
  • Queste email sono talvolta sensibili al tempo (quindi non è possibile richiedere tutto il giorno per l'invio).

Pensieri? Suggerimenti? Indicami nella giusta direzione?


EDIT

per chiarire:

posso fare questi per conto mio:

  • mantenere lista utenti
  • maniglia generazione di contenuti e-mail in base alle preferenze degli utenti

e hanno bisogno di qualcosa di diverso (app, servizio di terze parti, w/e):

  • accettare il contenuto delle email e gli indirizzi e effettivamente inviare le email fuori
  • fornire i dati di monitoraggio (si apre, clic, ecc). Più dettagli, meglio è.

sto appoggiato verso un servizio di terze parti, dal momento che non sono sicuro che qualsiasi applicazione può evitare il soffocamento il server per l'invio di migliaia di e-mail (anche se io non mi considero un esperto di e-mail in modo da poter essere sbagliato).

risposta

1

Si consiglia di utilizzare il servizio di mailing di terze parti Silverpop o qualcosa di simile. Li abbiamo usati per alcuni anni e siamo stati abbastanza soddisfatti. Hanno già rapporti con i principali client di posta elettronica (AOL, Yahoo !, Gmail, ecc.) E fanno un buon lavoro nel dirti se il materiale che stai inviando è classificato come SPAM.

Hanno un'API abbastanza estesa che utilizza richieste XML HTTP/HTTPS che possono collegarsi a sistemi esistenti. Puoi utilizzarlo per avviare in remoto e-mail, pianificare mailing, personalizzare i contenuti delle e-mail, configurare, gestire e interrogare enormi elenchi di destinatari, eseguire processi batch, ecc.

Non è un servizio perfetto, ma paragonato a molto di altri là fuori, lo fanno piuttosto bene. Ho avuto pochissime lamentele su di loro finora.

+0

Sembra promettente. Grazie per il consiglio! – Grekker

0

Utilizzare Google AppEngine se si è preoccupati per la scalabilità & personalizzazione: fornisce un'API di posta elettronica e si può interfacciare qualsiasi cosa a condizione che sia attraverso un'interfaccia HTTP.

Naturalmente, questo è solo un suggerimento - ignorare se questo non si adatta.

1

Di solito mi aggiravo avendo una funzione di "invio" della posta che ha scaricato le e-mail in una coda (tabella del database) con un lavoro eseguito ogni paio di minuti, ha afferrato le successive e-mail in coda, inviato quelle fuori e li ha contrassegnati come riusciti. Ecco le sue semplici ossa. È quindi possibile aggiungere la gestione per errori di posta elettronica, posta restituita, ecc. Nella versione 2.

+0

Attualmente sto usando questo metodo. La mia società di hosting mi consente di inviare fino a 200 e-mail all'ora, per dominio. Quindi con un cronjob gestisco la coda e i tempi. Funziona bene ed è piuttosto semplice da implementare. –

+0

Dopo aver postato questo, il Dr. Jekyll parte della mia testa mi ha fatto tornare indietro e allego un avvertimento: prima di costruire questo sistema interno, assicuratevi di chiedervi perché lo state facendo. Se serve un bisogno/se serve un bisogno e non hai altro lavoro per farlo, va bene. Se è qualcosa che pensi sarebbe divertente da fare ma potrebbe essere risolto con un'opzione di terze parti (che in teoria ha già ripulito tutti i principali bachi), allora è una cattiva idea. – Tom

+0

Tom, grazie per la tua attenta considerazione. Il mio obiettivo numero uno è che tutto ciò che faccio è ricco di funzionalità, basso di bug, funziona bene con gli altri e può essere facilmente ampliato in futuro. Questo praticamente indica come una bussola usare un'app/servizio di terze parti su qualcosa che ho costruito io stesso. Inoltre, in generale, mi rivolgo a servizi di tipo cloud per questo genere di cose, quindi non devo preoccuparmi delle minuzie. Lascia che gli esperti di MailChimp, ecc., Si preoccupino delle migliori tecniche per non essere segnalati come spam o per tracciare aperture/clic. – Grekker

0

Perché non mantenere il sistema PHP e utilizzare un servizio SMTP di terze parti? Alcune aziende affidabili offrono l'uso di macchine e-mail a prezzi ragionevoli, ad es. Dewahost chi sto pensando di usare.

Vedere anche la domanda Third Party Email Senders e la mia risposta lì.

0

Molto probabilmente non è l'ideale, ma se si guarda alla trasmissione su larga scala ci sono soluzioni commerciali come Port 25's PowerMTA che possono essere configurate per trasmettere efficacemente il contenuto di una determinata cartella.

Come tale, è sufficiente utilizzare PHP per creare i dati raw formattati MIME personalizzati per ciascuna e-mail in uscita e posizionarli in una directory temporanea prima della trasmissione. (Ho scritto un sistema del genere in passato e saresti sorpreso dalla capacità del PHP di cancellare le e-mail, anche con un testo piuttosto complesso, con le immagini come allegati inline, ecc.) & HTML. Una volta che eri pronto a trasmetti, quindi sposterai i file in massa nella cartella monitorata da PowerMTA e si prenderà cura della trasmissione.

A seconda di come la si guarda, il vantaggio/problema con tale soluzione è che è necessario creare relazioni di fiducia con persone come AOL, MSN/Hotmail, ecc. Per garantire che il proprio server di posta non sia nella lista nera a causa dell'email di segnalazione dell'utente come SPAM. (Detto questo, questo sarà probabilmente un fattore con qualsiasi soluzione fai-da-te.)

2

Utilizziamo la funzionalità di posta elettronica PHP integrata per inviare migliaia di e-mail agli abbonati su base giornaliera.

Questa è una pessima idea. Soffoca il nostro server e impiega ore per completare l'intero batch.

Perché pensi che i tuoi problemi abbiano a che fare con la funzione di e-mail PHP integrata? È un involucro molto sottile attorno a "mail" o un semplice client SMTP a seconda della piattaforma su cui si sta eseguendo.

Quando dici che soffoca il tuo server - intendi il tuo server di posta elettronica? Il tuo server web? qualcos'altro?

Qui non ci sono abbastanza informazioni per fare una diagnosi corretta ma sembra che i problemi siano di tua creazione - certo, ci sono molte persone che promettono di risolvere tutti i tuoi problemi se solo compri i loro ultimo prodotto/servizio. Ma ci sono ottime possibilità che questo non risolva i tuoi problemi attuali.

Puoi dirci:

  1. quale sistema operativo il PHP è in esecuzione su

  2. come si richiama il codice per creare i messaggi di posta elettronica

  3. ciò che la configurazione di posta nella php. il file ini è

  4. che tipo di MTA stai usando? Su quale sistema operativo?

  5. in che modo è copiato l'MTA dell'utente - viene recapitato direttamente o tramite un relè intelligente?

  6. quale server viene "bloccato"?

  7. Quali misure anti-spam avete in atto per la posta in uscita?

Quindi dicci cosa hai fatto per diagnosticare l'errore e perché pensi che sia specifico per l'invio di e-mail.

C.

+0

Symbbean, grazie per essere accurato. Sempre apprezzato! Non conosco tutti i dettagli di configurazione in cima alla mia testa, né le complessità del codice (sono di recente impiegato). Approfondirò un po 'più a fondo e cercherò alcune risposte alle tue domande. So che stiamo eseguendo CentOS e che esiste una sola macchina che esegue tutto. Con "strozzato" intendo che il nostro server web rallenta e impiega fino a 5 o 6 ore per inviare tutte le e-mail. Ho pensato che si trattasse di una combinazione di cattiva codifica e del fatto che non è possibile inviare tante e-mail da una configurazione tipica. – Grekker

+0

"Perché pensi che i tuoi problemi abbiano a che fare con la funzione di e-mail PHP integrata? È un involucro molto sottile attorno a" mail "o un semplice client SMTP a seconda della piattaforma su cui stai lavorando." E per chiarire: la mia implicazione non è mai stata che la semplice funzione di mailing fosse colpevole; semplicemente che il codice che stavamo eseguendo o la configurazione del server stesso era un collo di bottiglia per la velocità con cui potevamo inviare e-mail. Non ho molta familiarità con i server di posta elettronica o la configurazione, quindi non so cosa può gestire un tipico server Web per le e-mail in uscita. – Grekker

+0

Utilizziamo "sendmail" per le e-mail e sono le impostazioni predefinite ("sendmail -t -i"). – Grekker

0

So che questa è una domanda più vecchio, ma volevo solo suggerire SendGrid che è essenzialmente un "Email Server come servizio "che consente di inviare e-mail con costo per email.

Problemi correlati