邮件中附加多个文件时附件丢失

邮件中附加多个文件时附件丢失

我编写了一个脚本来通过邮件获取多个附件。我的脚本是

for file in `find $dir -ctime -2 -type f -name "Sum*pdf*"`
do
echo "$file"
filename=`basename $file`
echo $filename -exec uuencode {} {}\;|mailx -s "North" [email protected]
echo "$filename"
done

但我收到的邮件没有附件。请帮我看看这有什么问题。

答案1

使用uuencode不标准,不会给你附件。如果您想发送带有多个附件的邮件,最简单的解决方案可能是使用 Mutt 与mutt -s subject -a file1 file2 ... filen -- address < message

答案2

我发现这个技巧展示了如何使用uuencode将多个附件附加到单个文件,然后将此单个文件附加到电子邮件。文章标题为:从 Solairs / AIX / HP-UX / UNIX / Linux 命令行通过电子邮件发送多个文件附件

例子

$ uuencode r1.tar.gz r1.tar.gz > /tmp/out.mail
$ uuencode r2.tar.gz r3.tar.gz >> /tmp/out.mail
$ uuencode r3.tar.gz r3.tar.gz >> /tmp/out.mail
$ cat email-body.txt >> /tmp/out.mail
$ mail -s "Reports" [email protected] < /tmp/out.mail

答案3

在这里,使用这个:)。

#!/bin/bash
RECIP="[email protected]"
SRCDIR="yourdirectory"
TMPDIR="tmp"
[ ! -d "$TMPDIR" ] && mkdir -p "$TMPDIR"

attargs=""
for file in `find "$SRCDIR" -ctime -2 -type f -name "Sum*pdf*"`; do
    echo "$file" #DEBUG
    filename=`basename $file`
    uuencode "$file" "$filename" > "$TMPDIR/${filename}"
    attargs="${attargs} -a $TMPDIR/$filename"
done

echo "mailx -s \"Done\" ${attargs[@]} $RECIP" #DEBUG
echo | mailx -s "Done" ${attargs[@]} "$RECIP"

然后删除临时目录,其中包含所有 uuencoded 文件。

确保使用 对其进行解码uudecode

相关内容