질문이 있습니다. 1일 전에 생성된 모든 파일을 찾아 화요일부터 일요일 오전 2시에 특정 메일 주소로 이메일을 보내는 스크립트를 작성해야 합니까?
문제는 내 스크립트가 3개의 올바른 파일을 찾았지만 단일 첨부 파일이 포함된 3개의 다른 이메일을 보내거나 첨부 파일 없이 1개의 이메일을 보낸다는 것입니다. 하나의 이메일에 여러 개의 첨부 파일을 보내려면 어떻게 편집해야 합니까? 모든 파일에는 "uuencode"가 필요한 것 같으므로 "uuencode"를 "filename"에 연결한 다음 해당 변수를 ssmpt 명령에 추가해 보십시오. 두 버전 모두 실제로 작동하지 않습니다.
하나의 이메일을 사용하여 찾은 모든 파일을 이메일로 보내는 정규식을 어떻게 작성합니까? 현재 스크립트는 첨부 파일이 없는 이메일만 보내거나 이메일당 파일 1개만 보냅니다.
도와주세요.
내 스크립트는 다음과 같습니다
버전 1: 첨부 파일 없이 이메일 1개 보내기:
#!/bin/bash
dt=$(date --date yesterday "+%Y-%m-%d")
result="performance-team*-$dt.txt"
arr=()
arr=($(find /root/Desktop/fileNAme -type f -name "${result}"))
for i in "${arr[@]}"
do
value=" uuencode -e $i $(basename $i);"
valueTotal=$valueTotal$value;
done
echo -e "to:[email protected]\nSubject:performance of teams on ${dt};"|(cat - && ${valueTotal};)|/usr/sbin/ssmtp [email protected]
버전 2: 각각 첨부 파일이 포함된 3개의 이메일을 보냅니다.
#!/bin/bash
dt=$(date --date yesterday "+%Y-%m-%d")
result="performance-team*-$dt.txt"
arr=()
arr=($(find /root/Desktop/fileNAme -type f -name "${result}"))
Count=0
for i in "${arr[@]}"
do
Count=$((Count+1))
echo -e "to:[email protected]\nSubject:performance of teams on ${dt}; mail ${Count} of 3\n"|(cat - && uuencode $i;)|/usr/sbin/ssmtp to:[email protected]
done
답변1
uuencode
작업에 적합한 도구가 아닙니다. (약 25년 전에는 올바른 도구였지만 MIME 표준으로 대체된 지 오래되었습니다.)
내 Debian 배포판에서는 스크립트가 mail
이 명령을 직접 사용할 수 있습니다. 매뉴얼 페이지에는 mail
다음과 같은 내용이 나와 있습니다.-서류 1개주어진 파일을 메시지에 첨부하세요”. 다음은 MIME을 사용하여 인코딩된 3개의 첨부 파일을 보내는 예입니다.
echo 'Here is my email' |
mail -s 'Test message' -a /etc/hosts -a /etc/group -a /etc/motd [email protected]
다음 부분을 확인할 시간이 없었지만 그럴 것 같습니다.munpack
역변환을 수행하는 도구, 즉 이메일에서 MIME 첨부 파일을 다시 파일로 추출하는 도구일 수 있습니다.