with rails mail letter_opener for delivery_method action_mailer ruby-on-rails smtp sendmail

ruby-on-rails - mail - sendgrid smtp rails



Sendmail vs SMTP (4)

¿Una aplicación de Rails en producción debería usar smtp o sendmail para enviar correos?


Ambos trabajarán bien. Action Mailer soporta ambos.

He utilizado SMTP en varios proyectos con éxito. Mi sensación fue 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. Donde pueda hablar directamente con cualquier servidor SMTP, incluso remoto, tendrá que instalar sendmail en la máquina de rieles para que funcione.

El principal problema que me encuentro con el correo electrónico es enviar mensajes de forma asíncrona. Sin un servidor SMTP local, una instancia de sendmail local será más eficaz.

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


Como ya lo mencionó el NDP, ambos funcionan bien, es decir, si su volumen de mensajes no excede una cierta cantidad.

Por ejemplo, si su aplicación puede hablar SMTP con el servidor SMTP local (en IP 127.0.0.1, Puerto 25) o con un servidor en la misma subred (es decir, a través de un enlace de baja latencia), y ese servidor no usa ninguna Si el contenido se filtra antes de que se ponga en cola un mensaje, generalmente podrá enviar muchos más correos electrónicos a través de SMTP en menos tiempo.

Un enlace útil para Postfix puede ser Sugerencias generales sobre el rendimiento de la entrega de correo : observe la cita que dice

Envíe el correo a través de SMTP en lugar de / usr / sbin / sendmail.

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


SMTP es el protocolo que utilizan casi todos los hosts 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 SMTP. Sin embargo, el método "tradicional" - y discutible el mejor método - es dejar que sendmail lo haga.

Hay dos razones para esto: 1) casi todos los programas en UNIX que hacen lo que hace sendmail están diseñados para ser un reemplazo Postfix (esto incluye Postfix y Exim por ejemplo); y 2) sendmail o su reemplazo fue diseñado para manejar el correo y nada más: mediante el uso de 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 aún se niega a hablar SMTP directamente a un servidor de correo; Una buena descripción (técnica) está en el wiki .

Si tiene la opción (en UNIX) de hablar SMTP directamente o usar sendmail, use sendmail, especialmente en los servidores.


Su pregunta es incorrecta: SMTP significa Protocolo simple de transferencia de correo, mientras que sendmail es la pieza de software para enviar el correo utilizando este protocolo.

Utilice sendmail.