如何使用 Linux 命令行将文件作为电子邮件附件发送?

新手上路,请多包涵

我创建了一个每天晚上在我的 Linux 服务器上运行的脚本,它使用 mysqldump 将我的每个 MySQL 数据库备份到 .sql 文件并将它们打包为压缩的 .tar 文件。我想要完成的下一步是通过电子邮件将该 tar 文件发送到远程电子邮件服务器以便妥善保管。我已经能够通过将备份文本文件传送到 mailx 来将正文中的原始脚本发送电子邮件,如下所示:

 $ cat mysqldbbackup.sql | mailx backup@email.example

cat 回显备份文件的文本,该文本通过管道传输到 mailx 程序中,收件人的电子邮件地址作为参数传递。

虽然这可以满足我的需要,但我认为它可能会更好, 有没有办法使用 shell 脚本或其他方式将压缩的 .tar 文件作为 附件 发送到外发电子邮件? 这将比处理包含标题数据并且通常存在自动换行问题等的非常长的电子邮件信息要好得多。

原文由 Kit Roed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 561
2 个回答

没有一个笨蛋对我有用。它认为电子邮件地址是附件的一部分。不得不做:

 echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.example

原文由 rynop 发布,翻译遵循 CC BY-SA 4.0 许可协议

或者,失败的 mutt:

 gzip -c mysqldbbackup.sql | uuencode mysqldbbackup.sql.gz  | mail -s "MySQL DB" backup@email.com

原文由 Daniel Fone 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题