Frage

Senden einer Nachricht über die Unix-Befehlszeile mit mail TO_ADDR führt zu einer E-Mail von $USER@$HOSTNAME.Gibt es eine Möglichkeit, die von eingefügte „Von:“-Adresse zu ändern? mail?

Fürs Protokoll: Ich verwende GNU Mailutils 1.1/1.2 unter Ubuntu (aber ich habe das gleiche Verhalten bei Fedora und RHEL gesehen).

[BEARBEITEN]

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

Testing
.

Erträge

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

Das „Von:Die Zeile „foo@bar.org“ ist Teil des Nachrichtentexts, nicht Teil des Headers.

War es hilfreich?

Lösung

In meiner Version von Mail (Debian Linux 4.0) die folgenden Optionen arbeiten, um die Quelle zu steuern / Antwort-Adressen

  • -a Schalter für zusätzliche Header anzuwenden, liefert ein Von: -Zeile in der Befehlszeile, die der abgehenden Mail-Header angehängt wird
  • $ REPLYTO Umgebungsvariable gibt ein Reply-To: Header

, so dass die folgende Sequenz

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

Das Ergebnis, in meinem Mail-Clients, ist eine Mail von cms-sends@example.com, die alle Antworten auf dem Standard werden cms-replies@example.com

Hinweis: Mac OS-Benutzer: Sie haben nicht -a, aber Sie haben $ REPLYTO

NB (2): CentOS Benutzer haben viele Kommentatoren hinzugefügt, dass Sie -r verwenden müssen nicht -a

NB (3): Diese Antwort ist mindestens 10 Jahre alt (1) wenden Sie sich bitte, dass im Auge behalten, wenn Sie von Google kommen.

Andere Tipps

Auf Centos 5.3 ich in der Lage bin zu tun:

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

Der Doppelstrich stoppt E-Mails von dem Argument -f Parsen und übergibt sie an sich selbst zu sendmail.

GNU mailutils der ‚Mail‘ Befehl nicht lassen Sie dies tun (leicht zumindest). Aber wenn Sie 'Erbstück-mailx' installieren, seine E-Mail-Befehl (mailx) hat die '-r' Option, um die Standardeinstellung außer Kraft setzen '$ USER @ $ HOST' aus dem Feld.

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

Werke für 'mailx', aber nicht '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

Die oben ist meine Lösung .... irgendwelche zusätzlichen Header können nur nach der von und vor der Antwort hinzugefügt werden, um ... nur sicherstellen, dass Sie wissen, Ihre Header-Syntax, bevor sie das Hinzufügen .... das funktionierte perfekt für mich .

Außerdem ist es gut -F option verwenden Namen des Absenders angegeben werden.

So etwas wie folgt aus:

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

Oder schauen Sie einfach bei verfügbaren Optionen: http://www.courier-mta.org/sendmail.html

Es ist auch möglich, sowohl das von Namen zu setzen und von der Adresse mit so etwas wie:

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

Aus irgendeinem Grund Weitergabe -F'Some Name' und -fexample2@example.com nicht funktioniert, aber in der -t vorbei Werke zu sendmail und ist „easy“.

Hier sind einige Möglichkeiten:

  • Wenn Sie genug privelige haben, konfiguriert send umschreibt mit der Generika-Tabelle zu tun

  • Schreiben Sie die gesamte Kopf selbst (oder an sich selbst, speichern Mail die gesamte Nachricht mit allen Kopf- und Wieder bearbeiten und senden Sie es mit rmail von der Befehlszeile

  • Senden direkt mit Sendmail, verwenden Sie die "-f" Befehlszeilenparameter und beinhaltet nicht Ihr "From:" Zeile in Ihrer Nachricht

Diese sind nicht alle genau das gleiche, aber ich werde es lassen Sie es prüfen weiter.

Auf meinem tragbaren, habe ich send Authentifizieren als Client an einen Postausgangsserver und ich Generika Mail an ein anderes Konto kommen, um zurückzukehren. Es wirkt wie ein Zauber. Ich aggregieren eingehende E-Mails mit fetchmail.

Ich weiß nicht, ob es das gleiche mit anderen OS ist, aber in OpenBSD, die E-Mail-Befehl hat die folgende Syntax:

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

Sendmail hat -f Option, wo Sie die E-Mail-Adresse für das FROM angeben: Feld. Der folgende Befehl funktioniert für mich.

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

Danke BEAU

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

Ich habe gerade dies und es funktioniert für mich. Der Man-Pages für Mail 8.1 auf CentOS 5 nicht erwähnt. Für -f Option, sagt der Mann Seite:

  

-f Gelesene Nachrichten aus der Datei durch die Dateioperanden namens anstelle des Systempostfach. (Siehe auch Ordner.) Wenn kein Dateioperanden angegeben wird, lesen Nachrichten von mbox anstelle des Systempostfach.

Wie auch immer das ist toll zu finden, danke.

I abgeleitet dies von allen oben genannten Antworten. Nichts funktionierte für mich, wenn ich jeden einzelnen von ihnen versucht. Ich habe viel Versuch und Irrtum, indem er alle oben genannten Antworten kombiniert und auf diese abgeschlossen. Ich bin nicht sicher, ob dies für Sie funktioniert, aber es funktionierte für mich auf Ununtu 12.04 und 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>'

Man kann die Mail an eine beliebige Anzahl von Personen senden, indem Sie eine beliebige Anzahl von Empfänger-IDs hinzufügen und die E-Mail wird von gesendet Sender from-id@email.com

Hope, das hilft.

Am 7. Debian war ich noch nicht die Absenderadresse korrekt eingestellt Antworten von dieser Frage verwenden, (wäre immer der Hostname des Servers), aber entschlossen es auf diese Weise.

Installieren Erbstück-mailx

apt-get install heirloom-mailx

sicherzustellen, es ist die Standardeinstellung.

update-alternatives --config mailx

Verfassen Sie eine Nachricht.

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 können Sie viele String-Optionen angeben, die mit Abstand einfachste Weg, Header zu ändern und so weiter.

Auf CentOS dies für mich gearbeitet:

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

für mich gearbeitet

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

Auf CentOS 5.5, dem einfachste Weg, die ich gefunden habe den Standard von Domäne zu setzen, ist die Hosts-Datei zu ändern. Wenn Ihre Hosts-Datei Ihre enthält WAN / öffentliche IP-Adresse, ändern Sie einfach den ersten Hostnamen aufgelistet. Zum Beispiel Ihrer Hosts-Datei kann wie folgt aussehen:

  

...
  11.22.33.44 localhost default-Domain whatever-else.com
  ...

Um es von whatever-else.com machen senden, einfach so ändern, dass whatever-else.com zuerst aufgelistet wird, zum Beispiel:

  

...
  11.22.33.44 whatever-else.com localhost default-Domain
  ...

Ich kann nicht für andere Distributionen (oder sogar Version von CentOS), aber in meinem Fall sprechen, die oben funktioniert perfekt.

echo "test" | mailx -r fake@example.com es 'test' email@example.com

Es funktioniert in OpenBSD.

Was mir erlaubt, eine eigene haben reply-to auf einem Ubuntu 16.04 mit UTF-8 Codierung Adresse und Dateianhang:

Installieren Sie den Mail-Client:

sudo apt-get install heirloom-mailx

Bearbeiten Sie die SMTP-Konfiguration:

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

Senden Sie die E-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)

Keine der oben genannten Lösungen sind für mich arbeiten ...

#!/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"

Die Antworten vor zur Verfügung gestellt nicht für mich auf CentOS5 arbeiten. Ich installierte mutt. Es hat eine Menge von Optionen. Mit mutt tun Sie das so:

export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top