외부 플랫 파일의 이메일 주소를 사용하여 쉘 스크립트를 사용하여 이메일 보내기

외부 플랫 파일의 이메일 주소를 사용하여 쉘 스크립트를 사용하여 이메일 보내기

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명령에 여러 주소를 제공 할 수 있습니다 .

  1. 플랫 파일에 glob 문자가 없고 이메일 주소가 공백으로 구분되어 있다고 가정합니다.

    echo "Mail test..." | mail -s "Mail test subject..." $(< address.file)
    
  2. 개행으로 구분된 주소 목록을 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[@]}"

건배

관련 정보