¿Es necesario configurar un servidor de correo antes de poder utilizar el mail
comando de Linux?
Respuesta1
No, no necesitas un servidor de correo para enviar correo. Estoy más familiarizado con Sendmail y existen 3 clasificaciones de funcionalidades que cumplen con el correo electrónico como servicio. MDA (agentes de entrega de correo) es 1, MTA (agentes de transferencia de correo) es 2 y 3 es MUA (agentes de usuario de correo).
La terminología resulta confusa, pero no es necesario que un MTA esté ejecutándose todo el tiempo. Se llamará al MTA cada vez que el MUA ( mail
) quiera "enviar" correo.
Cuando ejecuta mail
y especifica una dirección a la que enviar correo, [email protected]
. El cliente de correo convocará al MTA ( /usr/bin/sendmail
), que luego consultará DNS para ese host/dominio (ejemplo.com) y averiguará qué valor está designado para su registro MX. MX significa Intercambiador de correo.
Ejemplo
Puedes usar el dig
comando para ver esto:
$ dig gnu.org mx
; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;gnu.org. IN MX
;; ANSWER SECTION:
gnu.org. 299 IN MX 10 eggs.gnu.org.
;; ADDITIONAL SECTION:
eggs.gnu.org. 299 IN A 208.118.235.92
eggs.gnu.org. 299 IN AAAA 2001:4830:134:3::10
;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:27:22 2013
;; MSG SIZE rcvd: 90
Entonces el cliente intentará conectarse a egg.gnu.org en el puerto 25 para enviar este correo electrónico.
¿Servidor DNS?
@puk hizo la siguiente pregunta de seguimiento:
¿Este DNS está en mi máquina local?
A lo que respondí:
@puk: puede ser de la misma manera que el servidor de correo, pero normalmente no lo es. Mire su /etc/resolv.conf
archivo y también cuando ejecute el dig
comando notará la SERVER: ...
línea en la parte inferior. Ese es el servidor DNS que atiende su solicitud.
Ejemplo
Mi /etc/resolv.conf
archivo contiene lo siguiente:
nameserver 192.168.1.8
Y consultas como esta, usando dig
:
$ dig gnu.org mx
Resultado en esto en la parte inferior:
;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:46:13 2013
;; MSG SIZE rcvd: 90
Y para el lector astuto, una pregunta: ¿cómo se configura esto? La respuesta es el /etc/nsswitch.conf
archivo. Específicamente esta línea:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Es decir, utilice los archivos primero ( /etc/hosts
), seguido de mdns4_minimal
. Ese es un DNS de multidifusión. Es básicamente un caché de búsquedas anteriores. Por último utiliza dns
cuál es la dirección IP del nameserver
designado en el /etc/resolv.conf
archivo.
Respuesta2
Realmente depende de qué versión mail
estés usando.
Todas las versiones necesitan un MTA para entregar el correo, pero algunas versiones son capaces de usar SMTP para comunicarse con un MTA remoto (el "host inteligente", por ejemplo, el servidor de correo de su ISP) y algunas solo pueden canalizar el mensaje para /usr/sbin/sendmail
enviar el correo a través de una MTA local.
En el último caso, la MTA local podría ser una MTA de pleno derecho comoenviar correooeximosufijo. O podría ser un MTA simple de solo envío comocorreo nuloossmtp. O un mini-MTA un poco más sofisticado comomsmtpque también permite poner en cola el correo para su posterior entrega.
En el mundo del software libre y del código abierto, existen dos variantes principales del mailx
paquete (que proporciona el mail
comando): bsd-mailx
y heirloom-mailx
. El mail
comando también está disponible en GNU mailutils
.
bsd-mailxno habla SMTP y sólo puede enviar correo enviándolo a/usr/sbin/sendmail
reliquia-mailxPuede hablar SMTP con un host inteligente, así como con el método tradicional de "canalización a envío de correo". POR CIERTO,Caracoles probablemente el mejor derivado de heirloom-mailx: todavía se está desarrollando y actualizando activamente.
utilidades de correo GNUcontiene varias herramientas relacionadas con el correo tanto para usuarios finales como para administradores de sistemas, incluida una versión de mail
y mucho más.
Entonces, para responder a su pregunta "¿Necesita un servidor de correo?". Sí, más o menos. Necesita uno pero, dependiendo de la versión que mail
tenga instalada, es posible que no tenga que instalarlo ni configurarlo en su propio sistema.
En mi opinión, es mejor tener al menos un MTA mínimo como msmtp
(o uno completo como postfix
o exim
) que depender únicamente de un host inteligente heirloom-mailx
porque aún necesita poner en cola el correo para su entrega posterior cuando su conexión a Internet no funciona o su host inteligente está inalcanzable. Con una cola local mail
y crond
otros programas pueden simplemente enviar y olvidar cualquier correo. Sin una cola local, tienen que lidiar de alguna manera con la condición de error si el host inteligente no está disponible.