Modificare il campo “Da:” indirizzi in Unix “e-mail”
Domanda
Invio di un messaggio dalla riga di comando di Unix utilizzando mail TO_ADDR
risultati in una e-mail da $USER@$HOSTNAME
.C'è un modo per modificare il campo "Da:" indirizzo inserito da mail
?
Per la cronaca, sto usando GNU Mailutils 1.1/1.2 su Ubuntu (ma ho visto lo stesso comportamento con Fedora e RHEL).
[MODIFICA]
$ mail -s Testing chris@example.org Cc: From: foo@bar.org Testing .
i rendimenti
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
"Da:foo@bar.org" la linea è la parte del corpo del messaggio, non fa parte dell'intestazione.
Soluzione
Nella mia versione di mail ( linux Debian 4.0 ) le seguenti opzioni per controllare la fonte / indirizzi di risposta
- il -un interruttore, per ulteriori intestazioni di applicare, per la fornitura di un Da:intestazione della riga di comando che verrà aggiunto alla posta in uscita intestazione
- il $REPLYTO variabile di ambiente di specificare una Risposta:intestazione
così la seguente sequenza
export REPLYTO=cms-replies@example.com
mail -aFrom:cms-sends@example.com -s 'Testing'
Il risultato, nel mio client di posta, è una e-mail da cms-sends@example.com che le risposte di default cms-replies@example.com
NB: Gli utenti di Mac OS:non hai una , ma si sono $REPLYTO
NB(2): CentOS utenti, molti commentatori hanno aggiunto che è necessario utilizzare -r
non -a
NB(3): Questa risposta è di almeno dieci anni(1), si prega di tenere questo in mente quando si proviene da Google.
Altri suggerimenti
Su Centos 5.3 sono in grado di fare:
mail -s "Subject" user@address.com -- -f from@address.com < body
Il double dash si ferma mail dall'analisi dell'argomento-f e passa insieme a sendmail stesso.
GNU mailutils della 'posta' comando non ti permette di fare questo (facilmente almeno).Ma Se si installa 'cimelio di mailx', il suo comando mail (mailx) ha l'opzione '-r' opzione per ignorare l'impostazione predefinita '$USER@$HOSTNAME' dal campo.
echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com
Lavora per 'mailx' ma non e 'mail'.
$ 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
quanto sopra è la mia soluzione....qualsiasi header supplementari possono essere aggiunti solo dopo e prima la risposta...basta assicurarsi di sapere le vostre intestazioni di sintassi, prima di aggiungere....questo ha funzionato perfettamente per me.
In più è bene usare -F option
per specificare il Nome del mittente.
Qualcosa di simile a questo:
mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com
O basta guardare le opzioni disponibili:http://www.courier-mta.org/sendmail.html
È anche possibile impostare il nome e l'indirizzo da utilizzare qualcosa come:
echo test | mail -s "test" example@example.com -- -F'Some Name<example2@example.com>' -t
Per qualche motivo il passaggio -F'Some Name'
e -fexample2@example.com
non funziona, ma passando il -t
a sendmail funziona e che è "facile".
Qui ci sono alcune opzioni:
Se si dispone di privelige abbastanza, configurare sendmail per fare riscrive con i generici tabella
Scrivere l'intera intestazione di te (o e-mail a te stesso, salvare l'intero messaggio con tutte le intestazioni, e ri-modificare e inviare con rmail dalla riga di comando
Invia direttamente con sendmail, utilizzare l'opzione "-f" flag della riga di comando e non includere il tuo riga "Da:" il tuo messaggio
Questi non sono tutti esattamente lo stesso, ma lascio a voi il look più.
Sul mio portatile, ho sendmail l'autenticazione di un client a un server di posta in uscita e uso di farmaci generici per rendere il ritorno di posta venire a un altro account.Funziona come un fascino.Io di aggregazione in arrivo la posta con fetchmail.
Non so se è lo stesso con altri OS, ma in OpenBSD, il comando mail ha questa sintassi:
mail to-addr ... -sendmail-options ...
sendmail è l'opzione-f in cui si indica l'indirizzo e-mail DA:campo.Il comando riportato di seguito funziona per me.
mail recepient@example.com -f from@example.com
Grazie BEAU
mail -s "Subject" user@address.com -- -f from@address.com
Ho appena trovato questo e funziona per me.Le pagine man per mail 8.1 su CentOS 5 non parlare di questo.Per -f
opzione, dice la pagina man:
-f i messaggi letti dal file di nome del file operando invece della cassetta postale di sistema.(Vedi anche la cartella.) Se il file non operando specificato, la lettura di messaggi da mbox invece della cassetta postale di sistema.
Comunque questo è grande per trovare, grazie.
Ho ricavato questo da tutte le risposte di cui sopra.Niente ha funzionato per me quando ho provato ogni uno di loro.Ho fatto molta pista ed errore combinando tutte le risposte di cui sopra e ha concluso su questo.Io non sono sicuro se questo funziona per voi, ma per me ha funzionato su Ununtu 12.04 e 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>'
Si può inviare la mail per qualsiasi numero di persone con l'aggiunta di qualsiasi numero di id del ricevitore e la mail viene inviata da SenderName da from-id@email.com
Spero che questo aiuta.
Su Debian 7 ero ancora in grado di impostare correttamente l'indirizzo del mittente utilizzando risposte a questa domanda, (per sempre il nome host del server), ma il problema è stato risolto in questo modo.
Installare heirloom-mailx
apt-get install heirloom-mailx
assicurarsi che l'impostazione predefinita.
update-alternatives --config mailx
Comporre un messaggio.
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 consente di specificare un sacco di opzioni di stringa, di gran lunga il modo più semplice per modificare le intestazioni e così via.
Su CentOS questo ha funzionato per me:
echo "email body" | mail -s "Subject here" -r from_email_address email_address_to
questo ha funzionato per me
echo "hi root"|mail -rsawrub@testingdomain.org -s'testinggg' root
Su CentOS 5.5, il modo più semplice che ho trovato per impostare il valore predefinito di dominio è quello di modificare il file hosts.Se il tuo file hosts contiene WAN/indirizzo IP pubblico, è sufficiente modificare il primo nome host elencati per esso.Per esempio, il file hosts può sembrare:
...
11.22.33.44 localhost default-dominio whatever-else.com
...
Per farla spedire da whatever-else.com semplicemente modificarlo in modo che whatever-else.com è elencato per primo, per esempio:
...
11.22.33.44 whatever-else.com localhost default-dominio
...
Non posso parlare per altre distro (o anche la versione di CentOS), ma nel mio caso particolare, di cui sopra, funziona perfettamente.
echo "prova" | mailx -r fake@example.com -s 'test' email@example.com
Funziona in OpenBSD.
Ciò che mi ha permesso di avere una custom indirizzo di risposta su un Ubuntu 16.04
con UTF-8
e codifica di un file allegato:
Installare il client di posta elettronica:
sudo apt-get install heirloom-mailx
Modificare la configurazione SMTP:
sudo vim /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
FromLineOverride=YES
AuthUser=???@gmail.com
AuthPass=???
UseSTARTTLS=YES
Inviare la mail:
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)
Nessuna delle soluzioni di cui sopra stanno lavorando per me...
#!/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"
Le risposte fornite prima non ha funzionato per me CentOS5.Ho installato mutt.Ha un sacco di opzioni.Con mutt è farlo in questo modo:
export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org