Domanda

Qual è il modo più corretto per inviare e-mail di almeno 1000 o più in PHP?Qualche tecnica affidabile di accodamento della posta elettronica in grado di gestirla?­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

È stato utile?

Soluzione

Potresti semplicemente inserire le tue e-mail in una tabella del database della coda di posta e fare in modo che un processo separato controlli la coda e invii in batch un determinato numero contemporaneamente.

Altri suggerimenti

C'è una soluzione testata per questo:PERA Mail_Queue

Funziona bene per me.

come suggerito da mercutio, inserirei un nuovo record in una tabella della coda di posta per ogni email in attesa di essere inviata e quindi utilizzerei un processo separato (come un CRON) per controllare periodicamente la tabella per eventuali elementi in coda.

se ci sono e-mail in coda (e l'e-mail non è personalizzata per ciascun destinatario), raggrupperei le e-mail per dominio e invierei blocchi insieme per ridurre il numero totale di e-mail che devono essere inviate, ad es.se hai 1000 email in coda e 250 sono destinate ad account Gmail, invierei i 250 in 25 blocchi da 10 (ricordati ai destinatari Ccn per evitare che si vedano).

per inviare effettivamente la posta che utilizzerei posta PERA sulla funzione mail() di php

dopo aver inviato l'e-mail, elimina i record dalla coda o modifica un flag di stato per mostrare che è stato inviato e ripetuto - aggiungerei anche un contatore per tenere traccia delle e-mail che non sono riuscite a inviarle e rimuoverle dopo x tentativi falliti

Per superare i problemi di timeout, vorrei (a seconda della situazione): impostare set_time_limit () su x secondi e tenere traccia del tempo di esecuzione dello script (uccidendo lo script dopo (x -1) secondi) - chiamare lo script dal comando riga per evitare timeouts: imposta un limite al numero di e -mail che lo script potrebbe inviare in un'esecuzione

Certo, la tabella del database potrebbe essere un'idea.Ma che ne dici di inviare 1000 e-mail con un allegato da 2 MB?dovresti tener conto anche di questo.Ho avuto io stesso il problema e alla fine sono ricorso a scrivere l'e-mail nel database e i file nel filesystem.Lo script di posta elettronica che ho utilizzato ha quindi letto i record del database e ha provato a recuperare gli allegati da inviare.

Sei sicuro di dover mettere in coda la posta da solo?

Basta consegnare tutta la posta all'agente di trasferimento della posta della macchina locale (sendmail...) e lasciare che si occupi dell'accodamento e dell'invio.Dopotutto, è per questo che è stato progettato.

In altre parole:non preoccuparti!

In genere mi sono affidato a un hack.Ho un elenco di database di indirizzi e-mail e quindi utilizzo un meta-reindirizzamento a me stesso con un parametro di "offset" crescente che specifica a quale riga del database mi trovo.I reindirizzamenti del server causano problemi perché i browser presuppongono che il tempo impiegato indichi un ciclo infinito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top