sendmail로 메시지를 파이프하는 형식은 무엇입니까?

sendmail로 메시지를 파이프하는 형식은 무엇입니까?

다음 명령을 사용하여 즉시 메시지를 생성하고 보냅니다.

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

쉘 스크립트의 "여기 문서"(메시지 헤더 및 본문 작성)

#!/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

관련 정보