【问题标题】:How to change the sender's name or e-mail address in mutt?如何在mutt中更改发件人的姓名或电子邮件地址?
【发布时间】:2012-08-28 11:22:20
【问题描述】:

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

【问题讨论】:

  • 您想在配置文件中更改一次,还是在撰写电子邮件时更改它?顺便说一句,这可能最好在 SuperUser 上问。
  • echo "文件 $Filename 不存在" | mutt -s '$MailSubject' -c "abc@yahoo.com"."xyz.yahoo.com"

标签: unix mutt


【解决方案1】:

通常,mutt 根据您在~/.muttrc 中设置的the from configuration variable 设置From: 标头:

set from="Fubar <foo@bar>"

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

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

但是,如果您希望能够在编写时编辑From: 标头,则需要configure mutt to allow you to edit headers first。这涉及在您的~/.muttrc 中添加以下行:

set edit_headers=yes

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

【讨论】:

  • 我是 shell 脚本新手。你能解释一下如何更改配置文件吗?它在哪里可用???
  • 文件 ~/.muttrc(即/home/$USERNAME/.muttrc)。您使用文本编辑器对其进行编辑。如果它不存在,则创建它。我不会称它为 shell 脚本,它只是打开一个编辑器,然后在文件中写一行;)
  • 我想补充一点,即使没有set edit_headers=yes,您也可以按edit-from 快捷键(默认:ESC f)来编辑发件人字段。
  • Mutt 还允许指定要使用的备用 muttrc 文件。因此,要一次性更改发件人地址,请创建一个新文件:echo set from="Fubar &lt;foo@example.com&gt;" &gt; temprc,然后使用它:mutt -s "my subject" -F testrc recipient@example.com
  • 在 .muttrc 中设置 set use_envelope_from = yes 终于为我工作了。这会在调用 sendmail 传递邮件时添加 -f 选项,强制它使用与 From: 标头字段相同的信封地址。
【解决方案2】:

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

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

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

最后一句话,不要作恶!

【讨论】:

  • 谢谢。例如: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) 将是系统的hostnameChanging the hostname on aws is easy,我觉得在其他系统上应该也差不多。
【解决方案3】:

在发送电子邮件之前,您可以按&lt;ESC&gt; f(Escape 后跟 f)来更改From: 地址。

约束:这仅适用于您在诅咒模式下使用 mutt 并且不想编写脚本或者您想永久更改地址。那么其他解决方案就更好了!

【讨论】:

  • 我在意识到from 是错误的之前写了一个回复(我几乎从不使用 mutt)。救了我的培根,谢谢!
【解决方案4】:

这种情况的一个特殊情况是,如果您在 ~/.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>

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

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

【讨论】:

    【解决方案5】:

    第 1 步:找到 Muttrc,如果是 Oracle Linux 7.6,可以在 /etc 中找到它 第 2 步:在 vi 编辑器中打开文件以添加以下条目,即。 vi /etc/Muttrc 第 3 步:要添加或/和取消注释的内容

    从 = "user@domain.com" 设置 set realname = "用户的真实姓名"

    Step4:保存文件并退出。还尝试使用以下语法发送电子邮件,

    echo "$Body of the email" | mutt -a "$name_of_the_attachment" -s $subject_line_of_the_email" -- $USER@DOMAIN.com

    【讨论】:

      【解决方案6】:

      对于一次性更改,您可以这样做:

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

      【讨论】:

      • 谢谢。我将 export EMAIL='sender@somewhere.com' 放在 .bashrc 中,现在它是永久的。
      • @Andrew 你是怎么把它放在那里的?您是刚刚nano 文件并在文件底部附加了一个衬里 - 还是您在其周围放置了其他代码?
      • @3kstc 只是把我写的导出语句放在你的 .bashrc 中——但要确保 .bashrc 是有源的,否则变量 EMAIL 将不会被设置。使用 cron 或 ssh 或其他 shell(不是 bash)调用 mutt 时可能会出现这种情况,因为根据 shell 的启动方式,可能不会执行所有可能的用户配置文件相关文件
      【解决方案7】:

      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 中测试。

      【讨论】:

      • 没有错误。它只是行不通。正确的解决方案是在~/.muttrc中使用set from=email@example.com
      猜你喜欢
      • 2018-02-17
      • 2012-12-07
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2019-06-30
      • 1970-01-01
      相关资源
      最近更新 更多