2009-12-10 6 views
10

une question simple: laquelle a une bonne performance pour l'envoi de mails en vrac?PHP: mail() vs SendMail

fonction mail() ousendmail

lequel est utilisé par les paquets de gestionnaire de liste PHP populaires?

Répondre

10

La fonction mail() ne convient pas vraiment aux emails envoyés en masse car elle ouvre et ferme un socket SMTP pour chaque email que vous envoyez, ce qui est loin d'être efficace. Si vous regardez PEAR::Mail il vous permet d'utiliser 3 backends: , sendmail et SMTP. Pour ce que ça vaut, j'ai personnellement préféré le protocole SMTP car il est facile à prendre en charge sur Linux et Windows.

Si vous souhaitez envoyer des mails en arrière-plan en utilisant une file d'attente, PEAR::Mail_Queue pourrait être une solution.

7

sendmail est un agent de transfert de courrier (MTA). Sur les systèmes basés sur UNIX et Linux, la fonction mail() de PHP relaie simplement l'email via sendmail (ou un MTA compatible). Pour l'envoi de courriels en vrac, vous pouvez vouloir vous connecter directement à un serveur SMTP. Zend Framework fournit un SMTP transport.

+0

Merci d'avoir développé sur send-mail, en particulier sur Unix et Linux. Comment Windows gère-t-il cela? – Newb

3

Si vous exécutez vous-même le serveur de messagerie SMTP, assurez-vous que vous avez configuré correctement votre messagerie électronique ou que votre courrier se retrouvera dans la boîte de courrier indésirable pour la plupart des grands domaines (yahoo, gmail, etc.).

N'oubliez pas non plus la gestion des rebonds et la fonctionnalité robuste de désinscription. Sans ceux-ci, vos messages électroniques seront beaucoup moins efficaces, et votre adresse IP obtiendra blacklisted.

Et bien sûr, ne pas autoriser open relays. Faites vos devoirs et marchez avec prudence, les spammeurs nous ont rendu la tâche difficile.