You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bash脚本批量添加Excel文件为邮件附件失败,该脚本是否可行?

问题分析:mailx多附件脚本无法正常工作的原因

你提供的脚本不可行,原因如下:

多数版本的mailx中,-a参数一次仅能指定一个附件。当你使用-a *.xls时,shell会将通配符*.xls展开为匹配到的文件名列表,比如变成-a file1.xls file2.xls file3.xls。此时mailx只会将-a后的第一个文件file1.xls作为附件,剩下的file2.xls、file3.xls会被错误识别为邮件的收件人参数,最终导致仅第一个文件被成功添加为附件。

正确的实现方式

可以通过以下两种方法实现多附件发送:

  1. 循环构建附件参数
# 遍历所有xls文件,逐个添加-a参数
attachments=()
for file in *.xls; do
    attachments+=("-a" "$file")
done
echo "Test Email" | mailx -s "Testing File Conv" "${attachments[@]}" test@testmail.com
  1. 用printf生成多个-a参数
echo "Test Email" | mailx -s "Testing File Conv" $(printf -- '-a %s ' *.xls) test@testmail.com

这两种方式都会为每个Excel文件单独添加一个-a参数,确保mailx能正确识别所有附件。

内容的提问来源于stack exchange,提问作者Jenifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 17:50:23