Wie ändere ich den Namen oder die E-Mail-Adresse des Absenders in mutt?

69

Wie kann ich den Namen oder die E-Mail-Adresse ( From:Header) des Absenders ändern, die von verwendet wird mutt?

user1630087
quelle
1
Möchten Sie es einmal in einer Konfigurationsdatei ändern oder möchten Sie es beim Verfassen einer E-Mail ändern? Übrigens wird dies bei SuperUser wahrscheinlich besser gefragt.
ArjunShankar
echo "Datei $ Dateiname nicht vorhanden" | mutt -s '$ MailSubject' -c "[email protected]". "xyz.yahoo.com"
user1630087

Antworten:

71

Normalerweise setzt mutt den From:Header basierend auf der fromKonfigurationsvariablen, die Sie festgelegt haben ~/.muttrc:

set from="Fubar <foo@bar>"

Wenn dies nicht festgelegt ist, wird muttstandardmäßig die EMAILUmgebungsvariable verwendet . In diesem Fall können Sie Mutt wie folgt in der Befehlszeile aufrufen (im Gegensatz dazu, wie Sie es in Ihrem Kommentar gezeigt haben):

EMAIL="foo@bar" mutt -s '$MailSubject' -c "abc@def"

Wenn Sie jedoch den From:Header während des Komponierens bearbeiten möchten, müssen Sie ihn so konfigurieren mutt, dass Sie zuerst die Header bearbeiten können . Dies beinhaltet das Hinzufügen der folgenden Zeile in Ihrem ~/.muttrc:

set edit_headers=yes

Wenn Sie das nächste Mal mutt öffnen und eine E-Mail verfassen, wird der von Ihnen ausgewählte Texteditor ebenfalls mit den Überschriften angezeigt, sodass Sie sie bearbeiten können. Dies beinhaltet den From:Header.

ArjunShankar
quelle
Ich bin neu in der Shell-Skripterstellung. Können Sie erklären, wie Sie die Konfigurationsdatei ändern können? und wo ist es verfügbar ???
user1630087
2
Die Datei ist ~/.muttrc (dh /home/$USERNAME/.muttrc). Sie bearbeiten es mit einem Texteditor. Wenn es nicht da ist, erstellen Sie es. Ich würde es nicht Shell-Scripting nennen, es öffnet nur einen Editor und schreibt eine Zeile in eine Datei;)
ArjunShankar
6
Ich möchte das hinzufügen, auch ohne dass set edit_headers=yesSie die edit-fromVerknüpfung (Standard: ESC f) drücken können , um das Feld von zu bearbeiten.
Andrew Savinykh
3
Mit Mutt können Sie auch eine alternative Muttrc-Datei angeben, die verwendet werden soll. Erstellen Sie daher für eine einmalige Änderung der Absenderadresse eine neue Datei: echo set from="Fubar <[email protected]>" > temprcund verwenden Sie sie dann:mutt -s "my subject" -F testrc [email protected]
Ben
@ AndrewSavinykh der Link ist tot :(
3kstc
27

Wenn Sie es nur einmal ändern möchten, können Sie den 'from'-Header in der Befehlszeile angeben, z.

mutt -e 'my_hdr From:[email protected]'

my_hdr ist der Befehl von mutt, einen benutzerdefinierten Header-Wert bereitzustellen.

Ein letztes Wort, sei nicht böse!

luanjunyi
quelle
3
Es funktioniert danke. Beispiel:echo "I love you body" | mutt -a "/tmp/file.zip" -s "ZIP" -c [email protected] -e 'my_hdr From:[email protected]' -- [email protected]
Beachten Sie, dass die Standarddomäne ([email protected]) die des Systems ist hostname. Das Ändern der hostnameon aws ist einfach , ich denke auf anderen Systemen sollte es ähnlich sein.
Bobobobo
26

Bevor Sie die E-Mail senden, können Sie <ESC> f(Escape gefolgt von f) drücken , um die zu ändernFrom: Adresse .

Einschränkung: Dies funktioniert nur, wenn Sie mutt im Fluchmodus verwenden und kein Skript erstellen möchten oder wenn Sie die Adresse dauerhaft ändern möchten. Dann sind die anderen Lösungen viel besser!

reox
quelle
Ich habe eine Antwort geschrieben, bevor mir klar fromwurde, dass das falsch war (ich benutze fast nie Köter). Ich habe meinen Speck gerettet, danke!
Cameron
10

Ein Sonderfall hierfür ist, wenn Sie in Ihrer ~ / .muttrc eine Konstruktion wie die folgende verwendet haben:

# Reset From email to default
send-hook . "my_hdr From: Real Name <[email protected]>"

Dieser Send-Hook überschreibt eines der folgenden Elemente:

mutt -e "set [email protected]"
mutt -e "my_hdr From: Other Name <[email protected]>"

Ihre E-Mails werden weiterhin mit dem Header gelöscht:

From: Real Name <[email protected]>

In diesem Fall ist die einzige Befehlszeilenlösung, die ich gefunden habe, das Überschreiben des Sende-Hooks selbst:

mutt -e "send-hook . \"my_hdr From: Other Name <[email protected]>\""
Verwirrung
quelle
6

Für eine einmalige Änderung können Sie dies tun:

export EMAIL='[email protected]'; mutt -s "Elvis is dead" [email protected]
Geezer
quelle
Vielen Dank. Ich habe export EMAIL='[email protected] 'in .bashrc abgelegt und jetzt ist es permanent.
Andrew
@ Andrew Wie hast du es dort hingelegt? Haben Sie nur nanodie Datei und den einen Liner am Ende der Datei angehängt - oder haben Sie anderen Code darum gelegt?
3kstc
@ 3kstc hat einfach die Exportanweisung so eingefügt, wie ich sie in Sie geschrieben habe .bashrc - aber stellen Sie sicher, dass .bashrc bezogen wird, sonst wird die Variable EMAIL nicht gesetzt. Dies kann der Fall sein, wenn mutt mit cron oder ssh oder anderen Shells (die nicht bash sind) aufgerufen wird, da möglicherweise nicht alle möglichen Dateien im Zusammenhang mit dem Benutzerprofil ausgeführt werden, je nachdem, wie die Shell gestartet wird
Andrew
1

100% arbeiten!

Um HTML-Inhalte im Textkörper der E-Mail unterwegs mit der E-Mail-Adresse des Absenders und des Empfängers in einer Zeile zu senden, können Sie Folgendes versuchen:

export EMAIL="[email protected]" && mutt -e "my_hdr Content-Type: text/html" -s "Test Mail" "[email protected]" < body_html.html

Datei: body_html.html

<HTML>
<HEAD> Test Mail </HEAD>
<BODY>
<p>This is a <strong><span style="color: #ff0000;">test mail!</span></strong></p>
</BODY>
</HTML>

Hinweis: Getestet in RHEL, CentOS, Ubuntu.

MS Arun
quelle
Es liegt kein Fehler vor. Es funktioniert einfach nicht. Die richtige Lösung ist die Verwendung set [email protected]in~/.muttrc
FractalSpace