如何使用unix命令在邮件中附加多个文件?

时间:2015-06-11 10:35:51

标签: mysql email ubuntu sendmail ubuntu-14.04

我正在实施一个脚本来备份我的MySQL数据库。所有过程都没问题,我完成后会发送一封电子邮件。但我想在该电子邮件中附上该文件,但我不知道该怎么做。

我的命令行是:

mail -s "$1" -a "MIME-Version: 1.0;" -a "Content-type: text/html;" root@$domain -c ops@mydomain.com < $2

$1 = My subject$2 = my message body

的位置

谢谢!

1 个答案:

答案 0 :(得分:1)

你非常接近。您可以使用mail命令发送1个附件,如下所示(发送前最好对文件进行TAR / ZIP):

echo "$2" | mail -s "$1" -a /path/to/file.tar.gz ops@mydomain.com

接下来,如果您想拥有更多功能,可以使用mutt(使用apt-get install mutt安装):

mutt -s "$1" -a /path/to/file1.tar.gz -a /path/to/file2.tar.gz -a /path/to/file3.tar.gz ops@mydomain.com < /tmp/mailbody.txt

其中:

  • file1.tar.gz to file3.tar.gz是文件附件
  • ops@mydomain.com是收件人
  • mailbody.txt是电子邮件的内容

或使用uuencode(与apt-get install sharutils一起安装):

uuencode /path/to/file.tar.gz /path/to/file.tar.gz | mailx -s "$1" ops@mydomain.com

注意:

  • 您必须重复file.tar.gz两次(阅读uuencode documentation以获取更多信息)
  • mailxmail的较新版本,但仍然是一个古老的命令

使用mail命令发送多个附件(如果你坚持的话,也是如此):

$ uuencode file1.tar.gz file1.tar.gz > /tmp/out.mail
$ uuencode file2.tar.gz file3.tar.gz >> /tmp/out.mail
$ uuencode file3.tar.gz file3.tar.gz >> /tmp/out.mail
$ cat email-body.txt >> /tmp/out.mail
$ mail -s "$1" ops@mydomain.com < /tmp/out.mail

希望以上有所帮助。