How to change the sender's name or e-mail address in mutt?
Asked Answered
U

7

82

How can I change the sender's name or e-mail address (From: header) used by mutt?

Umbrian answered 28/8, 2012 at 11:22 Comment(2)
Do you want to change it once, in a configuration file, or you want to change it while composing an e-mail? By the way, this is probably better asked on SuperUser.Overmuch
echo "File $Filename not present" | mutt -s '$MailSubject' -c "[email protected]"."xyz.yahoo.com"Umbrian
O
79

Normally, mutt sets the From: header based on the from configuration variable you set in ~/.muttrc:

set from="Fubar <foo@bar>"

If this is not set, mutt uses the EMAIL environment variable by default. In which case, you can get away with calling mutt like this on the command line (as opposed to how you showed it in your comment):

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

However, if you want to be able to edit the From: header while composing, you need to configure mutt to allow you to edit headers first. This involves adding the following line in your ~/.muttrc:

set edit_headers=yes

After that, next time you open up mutt and are composing an E-mail, your chosen text editor will pop up containing the headers as well, so you can edit them. This includes the From: header.

Overmuch answered 28/8, 2012 at 11:42 Comment(7)
I'm new to shell scripting.. Can you explain how to change the configuration file?? and where it is available???Umbrian
The file is ~/.muttrc (i.e. /home/$USERNAME/.muttrc). You edit it with a text editor. If its not there, you create it. I wouldn't call it shell scripting, its just opening an editor, and writing a line in a file ;)Overmuch
I'd like to add that even without set edit_headers=yes you can press the edit-from shortcut (default: ESC f) to edit the from field.Chalybite
Mutt also allows specifying an alternate muttrc file to use. Therefore for a one-shot change to the from address, create a new file: echo set from="Fubar <[email protected]>" > temprc and then use it: mutt -s "my subject" -F testrc [email protected]Repository
@AndrewSavinykh the link is dead :(Unworldly
@Unworldly seems like it is. Feel free to fix it!Chalybite
Setting set use_envelope_from = yes in .muttrc finally worked for me. This adds the -f option when calling sendmail to deliver the mail, forcing it to use the same address for the envelope as for the From: header field.Tallia
C
36

If you just want to change it once, you can specify the 'from' header in command line, eg:

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

my_hdr is mutt's command of providing custom header value.

One last word, don't be evil!

Clingy answered 21/1, 2013 at 4:21 Comment(2)
It works thanks. e.g: echo "I love you body" | mutt -a "/tmp/file.zip" -s "ZIP" -c [email protected] -e 'my_hdr From:[email protected]' -- [email protected]Parcae
Note the default domain ([email protected]) will be the system's hostname. Changing the hostname on aws is easy, I think on other systems, it should be similar.Snicker
A
29

before you send the email you can press <ESC> f (Escape followed by f) to change the From: Address.

Constraint: This only works if you use mutt in curses mode and do not wan't to script it or if you want to change the address permanent. Then the other solutions are way better!

Auberbach answered 14/3, 2014 at 19:43 Comment(1)
I wrote a response before realizing the from was wrong (I almost never use mutt). Saved my bacon, thanks!Patric
A
13

One special case for this is if you have used a construction like the following in your ~/.muttrc:

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

This send-hook will override either of these:

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

Your emails will still go out with the header:

From: Real Name <[email protected]>

In this case, the only command line solution I've found is actually overriding the send-hook itself:

mutt -e "send-hook . \"my_hdr From: Other Name <[email protected]>\""
Asclepiadean answered 3/8, 2013 at 1:51 Comment(0)
U
6

For a one time change you can do this:

export EMAIL='[email protected]'; mutt -s "Elvis is dead" [email protected]
Umiak answered 3/7, 2013 at 12:28 Comment(4)
Thanks. I put export EMAIL='[email protected]' in .bashrc and now it's permanent.Monger
@Monger How did you put it there? Did you just nano the file and append that one liner at the bottom of the file - or did you put other code around it?Unworldly
@Unworldly just put the export statement as I wrote it in you .bashrc - but be sure .bashrc is being sourced or else the variable EMAIL will not be set. This may be the case when invoking mutt using cron or ssh or other shells (that are not bash) as all of the possible user profile related files may not be executed depending on how the shell is startedMonger
Note that EMAIL='[email protected]' mutt ... is sufficient (no export, no ;). There is no need to export the EMAIL environment variable permanently. The syntax I show sets the environment variable for a single program invocation.Unlawful
M
2

Step 1: Locate Muttrc which in case of Oracle Linux 7.6 could be found in /etc Step 2: Open the file in vi editor to add the below entries viz. vi /etc/Muttrc Step 3: Contents to be added or/and uncommented

set from = "[email protected]" set realname = "Realname of the user"

Step4: Save the file and exit. Also attempt sending an email with the syntax that follows,

echo "$Body of the email" | mutt -a "$name_of_the_attachment" -s $subject_line_of_the_email" -- [email protected]

Mcmullan answered 5/7, 2021 at 9:39 Comment(0)
O
1

100% Working!

To send HTML contents in the body of the mail on the go with Sender and Recipient mail address in single line, you may try the below,

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

File: 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>

Note: Tested in RHEL, CentOS, Ubuntu.

Ottava answered 16/12, 2017 at 4:33 Comment(1)
There is no error. It just doesn't work. The correct solution is to use set [email protected] in ~/.muttrcFunerary

© 2022 - 2024 — McMap. All rights reserved.