Sendmail을 사용하여 첨부 파일을 추가하는 방법(제한된 옵션)?

Sendmail을 사용하여 첨부 파일을 추가하는 방법(제한된 옵션)?

잠긴 RHEL 상자를 사용하고 있습니다.

목표는 첨부 파일이 포함된 이메일을 보내는 것입니다.

사용 가능한 유일한 메일 서비스는 sendmail입니다. (sendemail, mail, mailx, mutt 등은 사용할 수 없습니다.)

또한 uuencode 명령을 찾을 수 없으며 sharutils를 설치할 수 없습니다.

다음과 같은 간단한 테스트를 통해 sendmail이 제대로 작동하는지 확인했습니다.

echo "Subject: testing" | sendmail -v [email protected]

다음 명령을 시도했지만 dead.letter만 생성됩니다.

echo "Subject: testing" | sendmail /a /tmp/test.txt [email protected]

이러한 제한 사항을 고려할 때 sendmail을 사용하여 서버에서 파일을 보내는 올바른 방법은 무엇입니까?

답변1

해결책은 다음과 같이 openssl base64 인코딩을 사용하는 것입니다.

( echo "to: [email protected]"
  echo "subject: Message from the server"
  echo "mime-version: 1.0"
  echo "content-type: multipart/related; boundary=messageBoundary"
  echo
  echo "--messageBoundary"
  echo "content-type: text/plain"
  echo
  echo "Please find the document attached."
  echo
  echo "--messageBoundary"
  echo "content-type: text/plain; name=test.txt"
  echo "content-transfer-encoding: base64"
  echo
  openssl base64 < /tmp/test.txt) | sendmail -t -i

관련 정보