명령을 실행하고 msmtp를 사용하여 출력(제목 포함)을 전자 메일로 보냅니다.

명령을 실행하고 msmtp를 사용하여 출력(제목 포함)을 전자 메일로 보냅니다.

msmtp가 설치된 OpenWRT 라우터가 있습니다. 현재 공용 IP 주소를 보내고 Cron이 15분마다 이를 실행하도록 하는 명령줄(또는 .sh 파일)을 작성하고 싶습니다.

이 게시물을 찾았습니다. 명령을 실행하고 결과를 이메일로 보내세요.

msmtp로 동일한 작업을 시도했는데 제대로 작동했습니다. 다음을 수행했습니다.

kdig +short myip.opendns.com @resolver1.opendns.com |메일 전송 프로토콜 [이메일 보호됨]

현재 공인 IP 주소가 포함된 이메일을 받았지만, 아무것도 설정하지 않았기 때문에 당연히 제목이 없습니다. 이제 msmtp의 경우 주제를 넣는 방법은 다음과 같습니다.

echo "제목: 현재 공용 IP" |[이메일 보호됨]

하지만 이 두 가지를 어떻게 결합해야 할지 모르겠습니다... 도움을 주시면 정말 감사하겠습니다!

답변1

나는 이 접근법을 인정할 수 없습니다. 다른 곳에서 본 적이 있지만 이 작은 조각은 매개 변수를 확인하고 보다 유연한 방식으로 추가하면 개선될 수 있지만 다음과 같은 아이디어를 얻을 수 있습니다.

kdig +short myip.opendns.com @resolver1.opendns.com |{
    SUBJ="A Subject"
    echo "From: \"name\"<[email protected]>"
    echo "To: \"me\"<[email protected]>"
    echo "Subject: ${SUBJ}"
    # Now repeat what was piped in 
    cat /dev/fd/0
} | msmtp [email protected]

관련 정보