다음 명령을 사용하여 메시지를 즉시 작성하여 보냅니다.
echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com
파일에서 정보를 보낼 때 다음과 같은 작업을 수행하는 것 같습니다.
sendmail email@example.com mail.txt
그런 다음 sendmail은 각 줄을 헤더로보고 구문 분석합니다. 그러나 내가 위에서 보낸 방식으로 모든 것이 제목 줄에 끝납니다.
헤더가 포함 된 메시지를 sendmail에 에코하려면 형식은 무엇입니까? 어떻게합니까?
답변
당신의 echo
문장은 실제로 시퀀스 \
뒤에가 아닌 개행을 출력해야합니다 n
. 다음 -e
옵션 을 제공하여이를 수행 할 수 있습니다 .
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com
차이점을 이해하려면 다음 두 명령의 출력을 살펴보십시오.
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"
답변
쉘 스크립트의 “여기 문서”(메시지 헤더 및 본문 작성)
#!/bin/sh
TO=email@example.com
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO
I would like to buy a hamburger
MAIL_END
외부 파일의 메시지 본문
#!/bin/sh
TO=email@example.com
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO
HEADERS_END