【问题标题】:shell script - attachment getting splitted in mailshell 脚本 - 附件在邮件中被拆分
【发布时间】:2020-11-07 02:37:15
【问题描述】:

我在脚本中使用 mailx 从 Linux 机器向收件人发送文件。

如果文本文件的行数很少,mailx 可以正常发送文件但是,如果附件文件的行数过多,例如 346 行,则 mailx 命令通过将文件分成 7 个部分来发送多封邮件,例如50行,50行……

我怎样才能阻止这种情况发生并始终发送一封带有一个附件的电子邮件?

uuencode $TEMP_PATH/tmpfile2 summary.txt > $TEMP_PATH/file1.txt

cat $TEMP_PATH/newmessage1.txt $TEMP_PATH/file1.txt | mailx -s "我的主题行" ${mail_id}

#here newmessage1.txt 将包含电子邮件正文,file1.txt 将包含要发送的摘要数据行。

【问题讨论】:

  • 您似乎没有根据您发布的命令发送任何附件?
  • @RamanSailopal 如文末所述,file1.txt 为附件

标签: linux bash shell unix scripting


【解决方案1】:

你的语法错误

cat file1 file2 就像在您的示例中一样,将两个结果合二为一发送到标准输出,然后将结果发送到管道后的命令

例子

$ more test1.txt
akdkdkdkd
$ more test2.txt
kikkkkkdidid
$ cat test1.txt test2.txt | more
akdkdkdkd
kikkkkkdidid
$

在您的情况下,您将 newmessage1.txt 和 file1.txt 合并为一个输出,然后将结果发送到 mailx。也许您的环境或其他方面存在限制,但我可以肯定地告诉您,这就是 cat 的工作原理。

代替

cat $TEMP_PATH/newmessage1.txt $TEMP_PATH/file1.txt | mailx -s "my subject line" ${mail_id}

使用这个

cat $TEMP_PATH/newmessage1.txt | mailx -s "my subject line" -a $TEMP_PATH/file1.txt ${mail_id}

【讨论】:

  • 如果语法错误,为什么它会成功发送带有 50 条记录的附件的邮件?而且如果附件有超过300条记录,那么也可以通过拆分文件来发送邮件
  • 拜托,如果答案解决了你的问题,你能接受吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-11
  • 2013-11-27
  • 1970-01-01
  • 2011-07-06
  • 2010-12-21
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多