如何在Mutt中更改发件人的姓名或电子邮件地址?


69

如何更改发件人使用的发件人名称或电子邮件地址(From:标题)mutt


1
您是否要在配置文件中对其进行一次更改,还是要在编写电子邮件时进行更改?顺便说一下,最好在SuperUser上问这个问题。
2012年

回声“文件$ Filename不存在” mutt -s'$ MailSubject'-c“ abc@yahoo.com”。“ xyz.yahoo.com”
user1630087 2012年

Answers:


71

通常,muttFrom:根据您在中设置from配置变量来设置标头~/.muttrc

set from="Fubar <foo@bar>"

如果未设置,默认情况下mutt使用EMAIL环境变量。在这种情况下,您可以在命令行上像下面这样调用mutt(与在注释中显示方式相反):

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

但是,如果希望在编辑时可以编辑From:标题,需要进行配置mutt以允许您首先编辑标题。这涉及在您的中添加以下行~/.muttrc

set edit_headers=yes

之后,下次打开mutt并撰写电子邮件时,也会弹出包含所选标题的文本编辑器,因此您可以对其进行编辑。这包括From:标题。


我是Shell脚本的新手。能否解释一下如何更改配置文件?在哪里可用???
2012年

2
该文件 ~/.muttrc(即/home/$USERNAME/.muttrc)。您可以使用文本编辑器对其进行编辑。如果不存在,则创建它。我不会称它为shell脚本,它只是打开一个编辑器,然后在文件中写一行;)
ArjunShankar,2012年

6
我想补充一点,即使没有set edit_headers=yes您也可以按edit-from快捷方式(默认值:ESC f)来编辑from字段。
Andrew Savinykh

3
Mutt还允许指定要使用的备用muttrc文件。因此,要一次性更改发件人地址,请创建一个新文件:echo set from="Fubar <foo@example.com>" > temprc然后使用它:mutt -s "my subject" -F testrc recipient@example.com
2013年

@AndrewSavinykh链接已死:(
3kstc '19

27

如果只想更改一次,则可以在命令行中指定“ from”标头,例如:

mutt -e 'my_hdr From:obama@whitehouse.org'

my_hdr 是mutt提供自定义标头值的命令。

最后一句话,不要邪恶!


3
它的工作原理,谢谢。例如: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

请注意,默认域(user@domain.com)将是系统的hostname更改hostnameaws很容易,我认为在其他系统上也应该类似。
bobobobo 2014年

26

在发送电子邮件之前,您可以按<ESC> f(Escape,然后按f)更改From:地址。

约束:仅当您在curses模式下使用mutt且不想编写脚本或要永久更改地址时,此方法才有效。然后其他解决方案就更好了!


我在意识到from错误之前写了一个回复(我几乎从不使用mutt)。保存了我的培根,谢谢!
卡梅伦

10

一种特殊情况是,如果您在〜/ .muttrc中使用了以下结构:

# Reset From email to default
send-hook . "my_hdr From: Real Name <email@example.com>"

此发送挂钩将覆盖以下任意一个:

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

您的电子邮件仍然会带有标题:

From: Real Name <email@example.com>

在这种情况下,我发现的唯一命令行解决方案实际上是覆盖send-hook本身:

mutt -e "send-hook . \"my_hdr From: Other Name <otheremail@example.com>\""

6

对于一次更改,您可以执行以下操作:

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

谢谢。我将export EMAIL='sender@somewhere.com'放在.bashrc中,现在它是永久的。
安德鲁(Andrew)

@Andrew你是怎么把它放在那里的?您只是nano将文件添加到该文件的底部,还是在文件的末尾附加了一个代码?
3kstc

@ 3kstc只是按照我在您的.bashrc中编写的内容放置了导出语句-但是请确保.bashrc是源程序,否则将不会设置变量EMAIL。当使用cron或ssh或其他shell(不是bash)调用mutt时,可能是这种情况,因为取决于shell的启动方式,可能不会执行所有可能的用户配置文件相关文件
Andrew

1

100%工作!

要使用发送方和收件人的邮件地址单行发送邮件正文中的HTML内容,您可以尝试以下操作,

export EMAIL="sender@example.com" && mutt -e "my_hdr Content-Type: text/html" -s "Test Mail" "recipient@example.com" < body_html.html

档案: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>

注意:已在RHEL,CentOS,Ubuntu中测试。


没有错误。就是行不通。正确的解决方案是set from=email@example.com~/.muttrc
FractalSpace '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.