0

我正在attach one file尝试echo messages使用mailx and uuencode. 我有以下命令,已将它们添加在一起,uuencode 无法正常工作,但我在电子邮件中正确收到了回显消息。

我怎样才能让 uuencode 在这里工作?我想在将 uuencode 与 mailx 结合时,我在这里做错了什么?

(uuencode /tmp/chart.html percentage_graph.html) | mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r rj@host.com rj@host.com <<EOF
Data Successfully loaded into LIP_DATA_QUALITY table

Total Items Purchased: `echo $QUERY1 | awk '{print $1}'`

Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`

Error Percentage: $QUERY2
EOF

但是出于测试目的,如果我发出以下命令以查看我是否在附件中获得任何 html 文件,那么我会正确收到一封带有附件的电子邮件。

(uuencode /tmp/chart.html percentage_graph.html) | mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r rj@host.com rj@host.com

那么当我将它们组合在一起时,我的第一个命令有什么问题?

4

2 回答 2

1

mailx命令可以从管道(uuencode)或heredoc(<< EOF)获取其输入。但不是两者兼而有之。

这可能对您有用:

$ mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r rj@example.com rj@example.com <<EOF
Data Successfully loaded into LIP_DATA_QUALITY table

Total Items Purchased: `echo $QUERY1 | awk '{print $1}'`

Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`

Error Percentage: $QUERY2

$(uuencode /tmp/chart.html percentage_graph.html)

EOF

或者,考虑使用mutt之类的东西,它可以让您将文件与邮件正文分开附加。

于 2012-08-13T23:50:58.690 回答
0

如果你给它一个输入文件名,uuencode 不会读取标准输入,就像你在这里所做的那样。那是因为它对单个文件进行编码。如果要对两个文件进行编码,则需要先以某种方式将它们组合在一起。cat如果可以连接它们,您可以使用:

cat /tmp/chart.html - | uuencode percentage_graph.html | mailx .... << EOF
..stuff to append to chart.html
EOF
于 2012-08-13T23:52:54.790 回答