2009-12-10 18 views
10

una domanda semplice: quale ha buone prestazioni per l'invio di posta alla rinfusa?PHP: mail() vs SendMail

mail() funzione o sendmail

quale viene utilizzato da popolare PHP pacchetti lista manager?

risposta

10

Bene la funzione mail() non è propriamente adatta per le e-mail inviate in blocco perché apre e chiude un socket SMTP per ogni e-mail che si invia, il che è ben lungi dall'essere efficiente. Se si guarda PEAR::Mail, è possibile utilizzare 3 backend: mail, sendmail e plain SMTP. Per quello che vale, personalmente ho preferito SMTP perché è facile da supportare sia su Linux che su Windows.

Se si desidera inviare e-mail in background utilizzando una coda, PEAR::Mail_Queue potrebbe essere una soluzione.

7

sendmail è un agente di trasferimento posta (MTA). Sui sistemi basati su UNIX e Linux, la funzione PHP mail() trasmette semplicemente l'e-mail tramite sendmail (o un MTA compatibile). Per l'invio di e-mail di massa, è possibile che si desideri effettuare la connessione direttamente a un server SMTP. Zend Framework fornisce uno SMTP transport.

+0

Grazie per l'elaborazione su send-mail, in particolare su Unix e Linux. Come gestisce questo però? – Newb

3

Se si sta eseguendo da soli il server di posta SMTP, assicurarsi di avere impostato SPF e domain keys correttamente o che la posta finirà nella casella di posta indesiderata per la maggior parte dei domini di grandi dimensioni (yahoo, gmail ecc.).

Inoltre, non dimenticare la gestione dei rimbalzi e la robusta funzionalità di annullamento dell'iscrizione. Senza quelli tuoi scoppi e-mail sarà molto meno efficace, e il tuo IP otterrà blacklisted.

E ovviamente non consentire open relays. Fai i compiti e calcola con cautela, gli spammer hanno reso difficile per noi.