问题描述
是否可以通过命令行通过电子邮件发送附件?
如果可能的话,我想简单一些:
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可能适合您的建议,请在此处打开另一个问题。
次佳方法
我在发送附件文件时也遇到了麻烦。当我发送不带附件的电子邮件时,它成功了,但没有附件。 sendemail
,mutt
,mail
,mailx
和uuencode
命令存在此问题。
幸运的是,它很有趣地解决了。我使用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”窗口,其中包含附件,并填充了“从”,“到”,“主题”和正文文本。可以在发送前对其进行编辑。