電子メールで複数の添付ファイルを受け取るスクリプトを作成しました。私のスクリプトは
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
。