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?


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 "abc@yahoo.com". "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.


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 <foo@example.com>" > temprcund verwenden Sie sie dann:mutt -s "my subject" -F testrc recipient@example.com
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:obama@whitehouse.org'

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

Ein letztes Wort, sei nicht böse!


3
Es funktioniert danke. Beispiel:echo "I love you body" | mutt -a "/tmp/file.zip" -s "ZIP" -c friend1@email.com -e 'my_hdr From:sender@company.com' -- main@email.com

Beachten Sie, dass die Standarddomäne (user@domain.com) 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!


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@example.com>"

Dieser Send-Hook überschreibt eines der folgenden Elemente:

mutt -e "set from=email@example.com"
mutt -e "my_hdr From: Other Name <otheremail@example.com>"

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

From: Real Name <email@example.com>

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 <otheremail@example.com>\""

6

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

export EMAIL='sender@example.com'; mutt -s "Elvis is dead" receiver@bar.com

Vielen Dank. Ich habe export EMAIL='sender@somewhere.com '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="sender@example.com" && mutt -e "my_hdr Content-Type: text/html" -s "Test Mail" "recipient@example.com" < 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.


Es liegt kein Fehler vor. Es funktioniert einfach nicht. Die richtige Lösung ist die Verwendung set from=email@example.comin~/.muttrc
FractalSpace
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.