使用 mailx 和 uuencode 发送附件

Posted

技术标签:

【中文标题】使用 mailx 和 uuencode 发送附件【英文标题】:Sending attachments with mailx and uuencode 【发布时间】:2014-08-09 18:58:53 【问题描述】:

我正在尝试运行一个 ksh 脚本,该脚本通常位于 AIX 机器的新主机 Linux 节点上。

我正在运行的代码如下所示:

 (uuencode $path/info.dat info.csv; uuencode $RESULTS results.log) | mail -s "Info" $MAIL_RECIPIENTS

这通常会发送一封主题为“Info”的电子邮件,其中包含附件 info.csv 和 results.log。

但是在我的 Linux 机器上,这并没有发生 - 它正在发送带有 uuencode 输出作为电子邮件正文且没有附件的电子邮件:

begin 775 info.csv

M+3`U+C`S+C4S+C(Q-#`W."(L(D%55$]314Y$("`B+")!551/4T5.1"`@(BPB
etc..
etc...
end

begin 775 results.log
M+3`U+C`S+C4S+C(Q-#`W."(L(D%55$]314Y$("`B+")!551/4T5.1"`@(BPB
etc...
etc...
end

我尝试将文件作为附件发送,根本不使用 uuencode:

mail -a info.csv -a results.log -s "Info" $MAIL_RECIPIENTS

但这是在脚本中间调用的,除非我按 CTRL D,否则它会挂起。

这是我正在使用的 uuencode 版本:

uuencode (GNU sharutils) 4.7
Copyright (C) 1994, 1995, 1996, 2002, 2005, 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

有其他人经历过吗?恐怕 mutt 不是一种选择。

【问题讨论】:

试试echo "" | mail -a .... 祝你好运。 【参考方案1】:

由于电子邮件的正文是空的,我能够这样做以阻止邮件实用程序挂起等待 EOT。

mail -a info.cvs -a results.log -s "Info" $MAIL_RECIPIENTS < /dev/null

【讨论】:

【参考方案2】:

您可以使用 mailx 发送带有正文和附件的邮件,并像这样使用它:

$ echo "body" | mailx -a AttachmentFile -s "subject" recipient@somewhere.com

【讨论】:

【参考方案3】:

使用这个:

uuencode info.cvs info.cvs |mailx -s 'results.log' -r $ReplyAddress $MailAddress

【讨论】:

以上是关于使用 mailx 和 uuencode 发送附件的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 uuencode 的“sendmail”发送邮件,并带有主题

将 uuencoding 切换为 MIME

使用命令行和 sendmail 发送带有多个附件的电子邮件

收到错误mailx:非法选项-在bash脚本中添加附件时

在 Ubuntu 服务器上使用带有附件的 php 脚本发送邮件 [重复]

使用uuencode,如何重命名发送时附加的文件?