2009-08-18 6 views
24

Sto lavorando a uno script KornShell (ksh) in esecuzione su un server Solaris che invierà un'e-mail quando e si verifica una condizione di errore. Sto inviando l'email via mailx.Come impostare l'indirizzo email Da per il comando mailx?

Domanda: Come si imposta l'indirizzo di posta elettronica "Da" sul comando mailx?

Codice attuale:

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

Nota: Il comando funziona bene, però, il "Da" è il nome dell'utente sto facendo funzionare lo script come e vorrei per questo ad un altro e-mail indirizzo.

Come potrei realizzare questo?

risposta

31

È possibile utilizzare l'opzione "-r" per impostare l'indirizzo del mittente:

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

@sth thx che ha funzionato! – AieshaDot

21

Nel caso in cui si desidera includere anche il tuo vero nome nel da-campo, è possibile utilizzare il seguente formato

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

Se vi capita di avere caratteri non ASCII in voi nome, come mio AEÆoeøaaå (Æ = C3 86, ø = C3 B8, a = C3 A5), è necessario codificarli in questo modo:

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

Spero che questo possa salvare qualcuno un'ora di duro lavoro/ricerca!

+0

Nel caso qualcuno sia curioso, il bit '=? Utf-8? ...? =' È un [MIME encoded-word] (http://en.wikipedia.org/wiki/MIME#Encoded-Word). –

+0

Il vero nome parte di questo non funziona per me su solaris. Il messaggio invia e riceve correttamente l'e-mail, ma ogni e-mail che inviamo viene rimossa solo per l'indirizzo e-mail. – peabody

+0

@Rune Il tuo metodo restituisce (My AE ?? oe ?? aa ??) qualche idea del perché? – RafaSashi

8

Su debian dove bsd-mailx è installato per impostazione predefinita, l'opzione -r non funziona. Tuttavia è possibile utilizzare invece mailx -s subject [email protected] -- -f [email protected]. In base alla pagina man, puoi specificare le opzioni sendmail dopo --.

+0

Grazie per il suggerimento, suppongo che avrei dovuto leggere la sinossi in modo più dettagliato. Purtroppo bloccato con orribili bsdutils, felice di avere una soluzione. – 4ae1e1

+3

Sfortunatamente il [aggiornamento sicurezza DSA 3104-1] (https://www.debian.org/security/2014/dsa-3104) ha rotto questo metodo. Invece, è possibile installare il pacchetto heirloom-mailx, che fornisce un'opzione '-r'. – praseodym

+0

Ho appena installato la versione 'bsd-mailx'' Versione: 8.1.2-0.20160123cvs-2', anche se su un sistema Ubuntu 16.04; l'opzione '-r' funziona. – ssc

28

L'opzione "-r" non è valida sui miei sistemi. Ho dovuto usare una sintassi diversa per il campo "Da".

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

Nel mio caso, onan Ubuntu 16.04, usando l'opzione '-a', mostra il nome di' Foo Bar' nella mail ricevuta, ma una risposta alla mail ricevuta offre il mio indirizzo email gmail, usato come login smtp, invece di 'foo.bar @ someplace.com'. – Stephane

1

Il pacchetto nail fornisce una maggiore mailx come l'interfaccia. Include l'opzione -r.

Su Centos 5 l'installazione del pacchetto mailx fornisce un programma chiamato mail, che non supporta le opzioni mailx.

0

su MacOS Sierra, creando ~/.mailrc con l'installazione smtp ha fatto il trucco:

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

Poi, per inviare la posta da CLI:

echo "your message" | mail -s "your subject" [email protected] 
Problemi correlati