메시지를 동적으로 생성하고 다음 명령을 사용하여 보냅니다.
echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
파일에서 정보를 보낼 때 다음을 수행하여 이를 수행할 수 있는 것 같습니다.
sendmail [email protected] mail.txt
그런 다음 sendmail은 각 행을 헤더로 처리하고 구문 분석합니다. 하지만 위에서 보낸 방식대로 모든 것이 제목 줄에 표시됩니다.
헤더가 있는 메시지를 sendmail로 에코하려는 경우 형식은 무엇입니까? 어떻게 해야 하나요?
답변1
echo
귀하의 명령문은 실제로 그 뒤에 오는 시퀀스 가 아니라 개행 문자를 출력해야 합니다 . 다음 옵션을 제공하여 이를 수행할 수 있습니다.\
n
-e
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
차이점을 확인하려면 다음 두 명령의 출력을 살펴보세요.
echo "Subject:Hello \n\n I would like to buy a hamburger\n"
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n"
답변2
쉘 스크립트의 "Document here"(메시지 제목과 본문 작성)
#!/bin/sh
[email protected]
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO
I would like to buy a hamburger
MAIL_END
외부 파일의 메시지 텍스트
#!/bin/sh
[email protected]
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO
HEADERS_END