2009-12-10 37 views
10

una pregunta simple: ¿cuál tiene un buen rendimiento para enviar correos a granel?PHP: mail() vs SendMail

electrónico() función o Sendmail

cuál es utilizado por paquetes gestor de listas de PHP popular?

Respuesta

10

Bueno, la función mail() no es realmente adecuada para correos electrónicos enviados a granel porque abre y cierra un socket SMTP por cada correo electrónico que envíe, lo que está lejos de ser eficiente. Si nos fijamos en PEAR::Mail, le permite utilizar 3 backends: mail, sendmail y SMTP. Por lo que vale, personalmente he preferido SMTP porque es fácil de admitir tanto en Linux como en Windows.

Si desea enviar correos en segundo plano utilizando una cola, PEAR::Mail_Queue podría ser una solución.

7

sendmail es un agente de transferencia de correo (MTA). En sistemas basados ​​en UNIX y Linux, la función mail() de PHP simplemente retransmite el correo electrónico a través de sendmail (o un MTA compatible). Para enviar correo electrónico masivo, es posible que desee buscar directamente la conexión a un servidor SMTP. Zend Framework proporciona un SMTP transport.

+0

Gracias por elaborar sobre el envío de correo, especialmente en Unix y Linux. ¿Cómo maneja Windows esto? – Newb

3

Si está ejecutando el servidor de correo SMTP usted mismo, asegúrese de tener SPF y domain keys configurados correctamente o su correo electrónico terminará en el cuadro de basura para la mayoría de los dominios grandes (yahoo, gmail, etc.).

Además, no se olvide de la gestión de rebotes y la sólida funcionalidad de cancelación de suscripción. Sin ellos, sus explosiones por correo electrónico serán mucho menos efectivas, y su IP obtendrá blacklisted.

Y, por supuesto, no permite open relays. Haga su tarea y pise con precaución, los creadores de spam nos han hecho las cosas difíciles.