2009-08-18 17 views
24

Estoy trabajando en un script KornShell (ksh) ejecutándose en un servidor Solaris que enviará un correo electrónico cuando se cumpla la condición de error. Estoy enviando el correo electrónico a través de mailx.¿Cómo se establece la dirección de correo electrónico From para el comando mailx?

Pregunta: Cómo puedo configurar el campo "De" dirección de correo electrónico en el comando mailx?

Código actual:

echo ${msg_txt} | mailx -s "Script Failure" ${to_email} 

Nota: El comando funciona bien, sin embargo, el "De" es el nombre del usuario que estoy ejecutando el script como y me gustaría que esto a otro correo electrónico dirección.

¿Cómo puedo lograr esto?

Respuesta

31

Usted puede utilizar la opción "-r" para ajustar la dirección del remitente:

mailx -r [email protected] -s ... 
+0

THX @sth que funcionó! – AieshaDot

21

En caso de que también desea incluir su nombre real en el de campo, puede utilizar el siguiente formato

mailx -r "[email protected] (My Name)" -s "My Subject" ... 

Si le sucede que tiene caracteres no ASCII en que nombre, como Mi AEÆoeøaaå (Æ = C3 86, ø = C3 B8, a = C3 A5), usted tiene que codificar como esto:

mailx -r "[email protected] (My =?utf-8?Q?AE=C3=86oe=C3=B8aa=C3=A5?=)" -s "My Subject" ... 

¡Espero que esto le ahorre a alguien una hora de trabajo/investigación!

+0

En caso de que alguien tenga curiosidad, el bit '=? Utf-8? ...? =' Es una [palabra codificada MIME] (http://en.wikipedia.org/wiki/MIME#Encoded-Word). –

+0

La parte del nombre real de esto no funciona para mí en solaris. El mensaje se envía con éxito y tiene el correo electrónico correspondiente, pero cada correo electrónico desde el que envío se elimina solo a la dirección de correo electrónico. – peabody

+0

@Rune Su método devuelve (My AE ?? oe ?? aa ??) alguna idea de por qué? – RafaSashi

8

En debian donde bsd-mailx está instalado de manera predeterminada, la opción -r no funciona. Sin embargo, puede usar mailx -s subject [email protected] -- -f [email protected] en su lugar. De acuerdo con la página de manual, puede especificar las opciones de sendmail después de --.

+0

Gracias por el consejo, supongo que debería haber leído la sinopsis con más detalle. Desafortunadamente atrapado con bsdutils horribles, contento de tener una solución. – 4ae1e1

+3

Lamentablemente, la [actualización de seguridad DSA 3104-1] (https://www.debian.org/security/2014/dsa-3104) rompió este método. En su lugar, se puede instalar el paquete heirloom-mailx, que proporciona una opción '-r'. – praseodym

+0

Acabo de instalar la versión 'bsd-mailx'' Version: 8.1.2-0.20160123cvs-2', aunque en un sistema Ubuntu 16.04; la opción '-r' funciona. – ssc

28

La opción "-r" no es válida en mis sistemas. Tuve que usar una sintaxis diferente para el campo "De".

-a "From: Foo Bar <[email protected]>" 
+1

En mi caso, en Ubuntu 16.04, usando su opción '-a', muestra el nombre' Foo Bar' en el correo recibido, pero una respuesta al correo recibido ofrece mi dirección de correo electrónico gmail, utilizada como inicio de sesión smtp, en su lugar del 'foo.bar @ someplace.com' uno. – Stephane

1

El paquete nail proporciona una mailx mejorada como interfaz. Incluye la opción -r.

En Centos 5 instalar el paquete mailx le ofrece un programa llamado mail, que no admite las opciones mailx.

0

en MacOS Sierra, creando ~/.mailrc con la configuración SMTP hizo el truco:

set smtp-use-starttls 
set smtp=smtp://smtp.gmail.com:587 
set smtp-auth=login 
set [email protected] 
set smtp-auth-password=yourpass 

A continuación, enviar correo desde la CLI:

echo "your message" | mail -s "your subject" [email protected] 
Cuestiones relacionadas