Pregunta

El envío de un mensaje desde la línea de comandos de Unix usando mail TO_ADDR resultados en un correo electrónico de $USER@$HOSTNAME.Es allí una manera de cambiar el "De:" dirección insertada por mail?

Para el registro, estoy usando GNU Mailutils 1.1/1.2 en Ubuntu (pero he visto el mismo comportamiento con Fedora y red hat enterprise linux).

[EDITAR]

$ mail -s Testing chris@example.org                                                                  
Cc: 
From: foo@bar.org

Testing
.

los rendimientos

Subject: Testing
To: <chris@example.org>
X-Mailer: mail (GNU Mailutils 1.1)
Message-Id: <E1KdTJj-00025z-RK@localhost>
From: <chris@localhost>
Date: Wed, 10 Sep 2008 13:17:23 -0400

From: foo@bar.org

Testing

El "De:foo@bar.org" la línea es parte del cuerpo del mensaje, no parte de la cabecera.

¿Fue útil?

Solución

En mi versión de mail ( linux Debian 4.0 ) las siguientes opciones de trabajo para el control de la fuente / responder direcciones

  • el -un interruptor de cabeceras adicionales a aplicar, el suministro De:encabezado de la línea de comandos que se anexará a la salida del encabezado del correo electrónico
  • el $REPLYTO la variable de entorno especifica una Respuesta Para:encabezado

así que la siguiente secuencia

export REPLYTO=cms-replies@example.com
mail -aFrom:cms-sends@example.com -s 'Testing'

El resultado, en mi cliente de correo, es un correo de cms-sends@example.com que las respuestas se predeterminado cms-replies@example.com

NB: Los usuarios de Mac OS:usted no tiene -un , pero usted tiene $REPLYTO

PD(2): Los usuarios de CentOS, muchos comentaristas han agregado que usted necesita para utilizar -r no -a

NOTA(3): Esta respuesta es de al menos diez años de antigüedad(1), por favor, tenga esto en mente cuando usted está viniendo de Google.

Otros consejos

En Centos 5.3 yo soy capaz de hacer:

mail -s "Subject" user@address.com -- -f from@address.com < body

El guión doble paradas de correo de analizar el argumento-f y pasa junto a sendmail sí mismo.

GNU mailutils del 'correo' comando no permite hacer esto (fácilmente al menos).Pero Si instala 'herencia-mailx', su comando de correo electrónico (mailx) tiene la '-r' opción para reemplazar el valor predeterminado '$USUARIO@$HOSTNAME' de campo.

echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com

Obras para la 'mailx' pero no 'correo'.

$ ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 2010-12-23 08:33 /usr/bin/mail -> /etc/alternatives/mail
$ ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 23 2010-12-23 08:33 /etc/alternatives/mail -> /usr/bin/heirloom-mailx
mail -s "$(echo -e "This is the subject\nFrom: Paula <johny@paula.com>\n
Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" 
milas.josh@gmail.com < htmlFileMessage.txt

el de arriba es mi solución....cualquier encabezados adicionales pueden ser añadidas después de la de y antes de la respuesta a...sólo asegúrese de que usted sabe que su encabezados de sintaxis antes de agregarlos....esto funcionó a la perfección para mí.

Además, es bueno utilizar -F option para especificar el Nombre del remitente.

Algo como esto:

mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com

O simplemente mirar a las opciones disponibles:http://www.courier-mta.org/sendmail.html

También es posible configurar tanto el De nombre y de dirección usando algo como:

 echo test | mail -s "test" example@example.com -- -F'Some Name<example2@example.com>' -t

Por alguna razón que pasa -F'Some Name' y -fexample2@example.com no funciona, pero que pasa en el -t a sendmail funciona y es "fácil".

Aquí están algunas opciones:

  • Si usted tiene privelige suficiente, configurar sendmail para hacer reescribe con los genéricos de la tabla

  • Escribir el encabezado completo de sí mismo (o enviarlo por correo a ti mismo, guardar el mensaje completo con todos los encabezados, y re-editar y enviar con rmail desde la línea de comandos

  • Enviar directamente con sendmail, utilizar la opción "-f" comando de la línea de bandera y que no incluya su "De:" de la línea en su mensaje

Estos no son todos exactamente el mismo, pero lo voy a dejar para buscar más a fondo.

En mi portátil, me han sendmail autenticación como un cliente a un servidor de correo saliente y uso de medicamentos genéricos para facilitar su regreso de correo a otra cuenta.Funciona como un encanto.Yo agregado de correo entrante con fetchmail.

No sé si es el mismo con cualquier otro sistema operativo, pero en OpenBSD, el comando mail tiene esta sintaxis:

mail to-addr ... -sendmail-options ...

sendmail tiene la opción-f de donde te indican la dirección de correo electrónico para el DE:campo.El siguiente comando funciona para mí.

mail recepient@example.com -f from@example.com

Gracias BEAU

mail -s "Subject" user@address.com -- -f from@address.com

Acabo de encontrar esto y funciona para mí.Las páginas man para el correo 8.1 en CentOS 5 no menciona esto.Para -f opción, la página man dice:

-f Leer los mensajes desde el archivo con el nombre del archivo operando en lugar del sistema de buzón de correo.(Véase también la carpeta.) Si no hay ningún archivo operando especificado, leer los mensajes de mbox en lugar del sistema de buzón de correo.

Así que de todos modos esto es grande para encontrar, gracias.

Yo derivados de este a partir de todas las respuestas de arriba.Nada funcionó para mí cuando traté de cada uno de ellos.Me hizo mucha prueba y error mediante la combinación de todas las anteriores respuestas y la conclusión sobre este.No estoy seguro de si esto funciona para usted, pero a mí me funcionó en Ununtu 12.04 y RHEL 5.4.

echo "This is the body of the mail" | mail -s 'This is the subject' '<receiver-id1@email.com>,<receiver-id2@email.com>' -- -F '<SenderName>' -f '<from-id@email.com>'

Uno puede enviar el correo a cualquier número de personas mediante la adición de cualquier número de número de identificación del receptor y el correo es enviado por SenderName de from-id@email.com

Espero que esto ayude.

En Debian 7 que aún era incapaz de establecer correctamente la dirección del remitente, utilizando las respuestas de esta pregunta, (siempre sería el nombre de host del servidor), pero se resuelve de esta manera.

Instalar herencia-mailx

apt-get install heirloom-mailx

asegurarse de que es el valor predeterminado.

update-alternatives --config mailx

Redactar un mensaje.

mail -s "Testing from & replyto" -r "sender <sender@example.com>" -S replyto="sender@example.com" recipient@example.net < <(echo "Test message")

echo "body" | mail -S from=address@foo.com "Hello"

-S le permite especificar un montón de opciones de la cadena, por mucho, la forma más fácil de modificar encabezados y tal.

En CentOS esto funcionó para mí:

echo "email body" | mail -s "Subject here" -r from_email_address email_address_to

esto funcionó para mí

echo "hi root"|mail -rsawrub@testingdomain.org -s'testinggg' root

En CentOS 5.5, la forma más sencilla que he encontrado para establecer el valor predeterminado de dominio es modificar el archivo hosts.Si tu archivo hosts contiene WAN/dirección IP pública, simplemente modifique el primer nombre de host aparece para él.Por ejemplo, tu archivo hosts podría parecerse a:

...
11.22.33.44 localhost por defecto de dominio whatever-else.com
...

Para hacer que se envíe desde whatever-else.com simplemente modificarlo con el fin de que whatever-else.com es el primero en la lista, por ejemplo:

...
11.22.33.44 whatever-else.com localhost por defecto de dominio
...

Yo no puedo hablar de cualquier otra distro (o incluso versión de CentOS) pero en mi caso particular, lo anterior funciona perfectamente.

echo "prueba" | mailx -r fake@example.com -s 'prueba' email@example.com

Funciona en OpenBSD.

Lo que me permitió tener un custom dirección de respuesta en un Ubuntu 16.04 con UTF-8 codificación y un archivo adjunto:

Instalar el cliente de correo:

sudo apt-get install heirloom-mailx

Editar la configuración de SMTP:

sudo vim /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
FromLineOverride=YES
AuthUser=???@gmail.com
AuthPass=???
UseSTARTTLS=YES

Enviar el correo:

sender='send@domain.com'
recipient='recipient@domain.com'
zipfile="results/file.zip"
today=`date +\%d-\%m-\%Y`
mailSubject='My subject on the '$today
read -r -d '' mailBody << EOM
Find attached the zip file.

Regards,
EOM
mail -s "$mailSubject" -r "Name <$sender>" -S replyto="$sender" -a $zipfile $recipient < <(echo $mailBody)

Ninguna de las soluciones anteriores están trabajando para mí...

#!/bin/bash

# Message
echo "My message" > message.txt

# Mail
subject="Test"
mail_header="From: John Smith <john.smith@example.com>"
recipients="recipient@example.com"

#######################################################################
cat message.txt | mail -s "$subject" -a "$mail_header" -t "$recipients"

Las respuestas que se dieron antes no funcionó para mí en CentOS5.He instalado mutt.Tiene un montón de opciones.Con mutt hacerlo de esta manera:

export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top