我有一个 cron 作业,我将其输出发送到 mailx:
# Monday morning at midnight; "mail" is symlink to "mailx"
00 00 * * mon python3 script-with-7500line-output.py | mailx -S 'from=noreply' -s "Report" [email protected]
当电子邮件被送达时,脚本的输出位于名为的附件中ATT0001.bin
。
我们喜欢它附加输出而不是将其放在正文中。但是:有没有办法设置附件的名称?
答案1
我喜欢 @diya 的评论。我会在这里添加答案,如果他将评论发布为答案,我会将“接受的答案”转移给他。
“一般来说,当需求变得不那么简单时,我建议编写一个包装脚本作为批处理作业使用。例如,编写一个 shell 脚本,将输出重定向到具有正确名称的临时文件,然后使用mailx -a filename ...
”
答案2
发布此信息只是为了以防有人碰到这个并且想知道我是如何做到的。
这是一个单独的文件...我的产品有许多其他稳健性特性(错误处理;mktemp 模板;等等),但这是基础知识:
#!/bin/bash
tmpDir="$(mktemp -d --tmpdir)"
python3 script-with-7500line-output.py > "${tmpDir}/PreferredAttachmentName.txt"
echo "Email Body" | mail -S "from=noreply" -s "Report" -a "${tmpDir}/PreferredAttachmentName.txt" [email protected]
rm -rf "$tmpDir"