![邮件中附加多个文件时附件丢失](https://linux22.com/image/39257/%E9%82%AE%E4%BB%B6%E4%B8%AD%E9%99%84%E5%8A%A0%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E6%97%B6%E9%99%84%E4%BB%B6%E4%B8%A2%E5%A4%B1.png)
我编写了一个脚本来通过邮件获取多个附件。我的脚本是
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
。