텍스트 파일에서 이메일 주소를 읽고 터미널을 사용하여 해당 이메일 주소로 이메일을 보내는 방법

텍스트 파일에서 이메일 주소를 읽고 터미널을 사용하여 해당 이메일 주소로 이메일을 보내는 방법

저는 스크립팅이 처음입니다. 텍스트 파일에서 이메일 주소를 읽고 해당 이메일 주소로 이메일을 보내는 방법을 알아내도록 도와주실 수 있나요?

예를 들어 나는emailAdd.txt

이 txt 파일에서:

[email protected]
[email protected]
[email protected]

이 이메일로 "Hello World"를 보내고 싶습니다. 이것은 단지 예일 뿐이며 약 30개의 이메일 주소로 보내야 합니다.

답변1

file=/path/to/emailAdd.txt

while read -r email; do
    printf '%s\n' 'Hello, world!' | mail -s 'This is the email subject' "$email"
done < "$file"

그러면 txt 파일의 각 줄을 반복하고 email변수를 전체 줄로 설정합니다(이것은 예제 데이터의 이메일 주소일 뿐입니다). Hello, world!제목이 있는 모든 이메일로 인쇄하여 전송 됩니다 This is the email subject.

바라보다이메일(1)

mailmailx//에서 보낸 이메일은 일반적 sendmail으로 이메일 스팸 필터에 의해 걸러집니다.

답변2

이는 CLI에서 사용하는 이메일 클라이언트에 따라 다릅니다. emailAdd.txt를 반복하는 경우 for 루프를 사용하여 이를 수행할 수 있습니다. 이 웹사이트에서 다섯 가지 방법을 사용하여 CLI 이메일을 보내는 방법을 알아볼 수 있습니다.

https://tecadmin.net/ways-to-send-email-from-linux-command-line/

그러나 원하는 작업을 수행하는 예는 다음과 같습니다.

#/bin/bash
file="/path/to/emailAdd.txt"

while read -r line
do
    sendmail $email  < /path/to/email.txt
done < "$file"

email.txt다음과 같이 설정할 수 있습니다:

Subject: Hello World

Email Content Hello World

관련 정보