이메일을 통해 여러 개의 첨부 파일을 받는 스크립트를 작성했습니다. 내 스크립트는
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
.