2009-08-25 16 views
19

¿Una aplicación de rieles en producción debería usar smtp o sendmail para enviar correos?Sendmail vs SMTP

+1

smtp es un protocolo, no un programa. – OTZ

Respuesta

6

Su pregunta no es correcta - SMTP significa Simple Mail Transfer Protocol mientras que Sendmail es la pieza de software para enviar el correo usando este protocolo.

Use sendmail.

36

SMTP es el protocolo que utilizan casi todos los servidores de Internet para enviar correo. Este protocolo es hablado por sendmail. Sendmail determina dónde enviar su mensaje y cómo.

Algunos programas de correo (la mayoría, hoy) se conectarán directamente a un servidor de correo y le hablarán de SMTP. Sin embargo, el método "tradicional" -y discutible es el mejor método- es dejar que sendmail lo haga.

Existen dos razones para esto: 1) casi todos los programas en UNIX que hacen lo que sendmail hace están diseñados para ser un reemplazo directo (esto incluye Postfix y Exim por ejemplo); y 2) sendmail o su reemplazo fue diseñado para manejar correo y nada más. Al usar sendmail no tiene que diseñar un cliente SMTP.

El cliente de correo electrónico Mutt para UNIX es un cliente de correo electrónico que todavía se niega a hablar SMTP directamente a un servidor de correo; una buena descripción (técnica) está en el wiki.

Si usted tiene una opción (en UNIX de todos modos) de hablar SMTP directa o usando sendmail, utilizar Sendmail - especialmente en los servidores.

+0

no hay sendmail en Windows ... hmm ... – rogerdpack

5

Ambos funcionarán bien. Action Mailer admite ambos.

He utilizado SMTP en varios proyectos con éxito. Mi sensación era que esto era un poco más "estándar", pero puedo estar equivocado.

No he usado sendmail. Mi preocupación sería que puede ser más difícil de configurar en un entorno de desarrollo si no está desarrollando directamente en Unix/Linux. Cuando puede hablar directamente con cualquier servidor SMTP, incluso uno remoto, debe instalar sendmail en la máquina de rieles para que funcione.

El principal problema que encuentro con el correo electrónico es el envío de mensajes de forma asincrónica. Sin un servidor SMTP local, una instancia local de sendmail será más eficiente.

De cualquier manera, parece bastante fácil cambiar si decides que escogiste mal.

7

Como PND ya se ha mencionado, los dos trabajan muy bien - es decir, si su volumen de mensajes no excede una cierta cantidad.

Por ejemplo, si su aplicación puede hablar SMTP al servidor SMTP local (en IP 127.0.0.1, Puerto 25) o un servidor en la misma subred (es decir, a través de un enlace de baja latencia), y ese servidor no utiliza ningún filtro de contenido antes de poner en cola un mensaje; por lo general, podrá enviar muchos más correos a través de SMTP en menos tiempo.

Un enlace útil para Postfix puede ser General Mail Delivery Performance Tips - nota la cita diciendo

enviar correo a través de SMTP en lugar de/usr/sbin/sendmail.

Sin embargo, en el hardware moderno, si no tiene previsto enviar más de 10 mensajes por segundo, no debería notar ninguna diferencia real.

Cuestiones relacionadas