uuencode를 사용하지 않고 sendmail 명령으로 파일을 첨부할 수 있는 방법이 있습니까?

uuencode를 사용하지 않고 sendmail 명령으로 파일을 첨부할 수 있는 방법이 있습니까?

다음 코드를 사용하여 쉘 스크립트에서 이메일을 보내려고 합니다.

fileToAttach=cpu_usage.log

`(echo "To: [email protected]"
  echo "From: [email protected]"
  echo "Subject: Issue with CPU"
  echo  Issue with CPU
  uuencode $fileToAttach $fileToAttach
  )| eval /usr/sbin/sendmail -t `;

하지만 난 얻었어

uuencode: command not found

우회할 수 있는 방법이 있나요?

답변1

Red Hat에서는 uuencodeuudecode명령이 sharutils패키지와 함께 제공됩니다.

Red Hat Enterprise Linux 4에서는 up2date 명령을 사용하여 이 패키지를 설치합니다.

up2date sharutils

Red Hat Enterprise Linux 5, Red Hat Enterprise Linux 6 및 Red Hat Enterprise Linux 7에서는 yum 명령을 사용하여 이 패키지를 설치합니다.

yum install sharutils

원천:"uuencode" 및 "uudecode" 명령을 제공하는 rpm 패키지는 무엇입니까?.

편집하다:

텍스트/전용 첨부 파일이 포함된 이메일을 보내는 것이 목적이라면 다음 명령을 실행하는 것이 좋습니다.

fileToAttach=cpu_usage.log

(printf "To: [email protected]\n"
 printf "From: [email protected]\n"
 printf "MIME-Version: 1.0\n"
 printf "Content-Type: text/plain; charset=\"US-ASCII\"\n"
 printf "Content-Transfer-Encoding: 7bit\n"
 printf "Subject: Issue with CPU\n\n"
 printf "echo  Issue with CPU\n"
 cat "$fileToAttach" 
 )| /usr/sbin/sendmail -t 

에서 언급했듯이@安飞이 솔루션은 이메일 본문과 이메일 헤더를 구분하기 위해 빈 줄을 제공합니다.

관련 정보