当前位置: 首页>>技术教程>>正文


如何从命令行通过电子邮件发送附件

, ,

问题描述

是否可以通过命令行通过电子邮件发送附件?

如果可能的话,我想简单一些:

mail -a myfile.txt -t me@example.com -s "Here's my file"

最佳方法

在Ubuntu存储库中的所有邮件用户代理中,似乎mutt是受长期支持支持的命令行 MUA。

根据the manual,您可以执行以下操作:

mutt -a myfile.txt -s "Here's my file" -- me@example.com

因为它也需要一个邮件传输代理,所以它不会随处可见。最受欢迎的是:

  • 古老的sendmail

  • 后缀

  • exim4

  • 邮箱

  • 空邮件

Canonical似乎唯一支持的是postfix(感谢Steve的更正)和exim4

也可以说xdg-email也是正确的Ubuntu MUA,但是它是bare-bones前端,仅代表您执行首选的MUA。

如果您需要哪种MTA可能适合您的建议,请在此处打开另一个问题。

次佳方法

我在发送附件文件时也遇到了麻烦。当我发送不带附件的电子邮件时,它成功了,但没有附件。 sendemailmuttmailmailxuuencode命令存在此问题。

幸运的是,它很有趣地解决了。我使用Gmail发送电子邮件。您可以按照在http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html中声明的命令,配置gmail通过终端中的命令发送电子邮件。

您可以使用以下方式发送文本电子邮件:

mail -s "hello" RECEIVE@mail.com < /home/masoud/YOURFILE.txt 

但您无法发送与附件相同的文件,如下所示:

mail -s "hello" RECEIVE@mail.com -a /home/masoud/YOURFILE.txt

要么:

mail -s "hello" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com

最后,我了解到只有这种格式才能发送附件:

echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com

有趣的是,区别在于存在”echo”命令。

更新时间:201808

似乎-a选项已被大写-A更改为现在的附件。 -a似乎用于根据doc更改标头

第三种方法

我发现命令和参数最近已更改。

如果要使用此命令发送附件:

mail -s "your subject" you@gmail.com -A /your/attachment/absolute/path < /home/you/message.txt

选项attachment应为-A,即CAPITAL A

第四种方法

您可能要从 shell 发送文件,否则请使用Thunderbird。

在这种情况下,请尝试使用thunderbird -remote ...-假定通常运行雷鸟:

该命令将打开正在运行的雷鸟实例的邮件撰写窗口。 “From”地址是您在雷鸟中配置的默认地址。同样,使用现有的帐户设置,不需要单独的设置。

对于地址为you@example.com,主题为”S”,正文”B”和附件/some/absolute/file.txt的邮件,命令为

thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='/some/absolute/file.txt')"

有两个问题:

附件文件必须由绝对路径给出,这在实践中很繁琐。可以使用readlink -f解析相对路径来处理:

thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='$(readlink -f file.txt)')"

另外,命令太长。使用带有四个参数的shell脚本或shell函数:

thunderbird-compose () {
    thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}

使用此功能,该命令变得可读:

thunderbird-compose 'Some Subject' test@example.com 'Body of message' file1

将会打开一个雷鸟”Write”窗口,其中包含附件,并填充了“从”,“到”,“主题”和正文文本。可以在发送前对其进行编辑。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11010.html,未经允许,请勿转载。