Diferentes distribuciones GNU/Linux pueden incluir diferentes implementaciones para el comando mail (cliente de correo electrónico) como Mail, Mailx, Heirloom mailx, etc. Típicamente, los agentes (Sendmail, Exim4, Postfix, etc.) incluyen la opción -f, la cual permite cambiar el "from" (remitente del mensaje) al momento de enviar un mensaje. Pero el comando mail (mailx) utiliza esta opción con otro significado, con lo cual no es posible (a simple vista) cambiar el "from".



En la versión de Mailx que incluye Debian existe la opción -a, la cual permite agregar headers SMTP:

     -a      Specify additional header fields on the command line such as "X-
             Loop: foo@bar" etc.  You have to use quotes if the string con‐
             tains spaces.  This argument may be specified more than once,
             the headers will then be concatenated.

De esta forma, es posible modificar el remitente a través del header SMTP "From:". Por ejemplo, si se desea enviar un correo electrónico a "linuxito@linuxito.com" pero se quiere cambiar el remitente del mensaje a "pepemuleiro@hotmail.net", se debe ejecutar:

$ mail -s "Asunto" -a "From: pepemuleiro@hotmail.net" linuxito@linuxito.com

Los sistemas basados en Red Hat en cambio incluyen el cliente "Heirloom mailx", el cual no posee la opción -a para agregar headers SMTP (tiene otro uso), sino que cuenta con la opción -r para modificar el remitente del mensaje:

       -r address
              Sets the From address. Overrides any from variable specified in
              environment or startup files.  Tilde escapes are disabled.  The
              -r address options are passed to the mail transfer agent unless
              SMTP is used.  This option exists for compatibility only; it is
              recommended to set the from variable directly instead.

En estos casos se debe utilizar el siguiente comando:

$ mail -s "Asunto" -r "pepemuleiro@hotmail.net" linuxito@linuxito.com

Ejemplos

Veamos dos ejemplos desde un servidor CentOS con Heirloom mailx 12.5:

root@centos:~# mail -s "prueba desde heirloom" -r "pepemuleiro@l***o.com" linuxito@o***x.org
Hola weon.
.
EOT
root@centos:~# mail -s "prueba desde heirloom" -r "Pepe Muleiro <pepemuleiro@l***o.com>" linuxito@o***x.org
Hola weon.
.
EOT

Resultado en el destinatario:

Ahora dos ejemplos desde un servidor Debian con Mailx:

root@debian7:~# mail -s "prueba desde mailx" -a "From: pepemuleiro@l***o.com" linuxito@o***x.org
Holis :)
.
Cc: 
root@debian7:~# mail -s "prueba desde mailx" -a "From: Pepe Muleiro <pepemuleiro@l***o.com>" linuxito@o***x.org
Holaaa
.
Cc: 

Resultado en el destinatario:

Referencias

man mail
man mailx
man sendmail


Tal vez pueda interesarte


Compartí este artículo