alexkowalski 스크립트를 사용하고 있습니다쉘 스크립트를 사용하여 이메일 보내기
MAILADDR=([email protected], [email protected], [email protected])
for i in "${MAILADDR[@]}"
do
echo "Mail test..." | mail -s "Mail test subject..." $i
done
MAILADDR
내 질문은 외부 플랫 파일에서 배열을 읽는 방법입니다 .
아래와 같이 이메일 본문을 대체하기 위해 외부 플랫 파일을 삽입하는 방법
echo"/home/user/information-for-any-user.txt" | mail -s "Mail test subject..." $i ??
답변1
이메일 주소를 가져오는 "외부 플랫 파일"이 그다지 흥미롭지 않은 경우(형식이 잘 지정됨) 다음과 같은 것을 사용할 수 있습니다.
mail -s "My subject" $(cat /this/is/the/external/flat/file.txt) < /home/user/information-for-any-user.txt
답변2
mail
명령에 여러 주소를 제공 할 수 있습니다 .
플랫 파일에 glob 문자가 없고 이메일 주소가 공백으로 구분되어 있다고 가정합니다.
echo "Mail test..." | mail -s "Mail test subject..." $(< address.file)
개행으로 구분된 주소 목록을 bash 배열로 읽습니다.
mapfile -t addr < address.file echo "Mail test..." | mail -s "Mail test subject..." "${addr[@]}"
답변3
두 가지 답변을 결합해 주셔서 감사합니다.
mapfile -t addr < /home/user/address-file #(한 줄에 하나의 이메일 주소)
echo "$(cat < /home/user/모든 사용자 정보)" | mail -s "내 주제" "${addr[@]}"
건배