유닉스에서 sendmail 명령을 사용하여 첨부 파일이 있는 이메일을 보내는 방법

유닉스에서 sendmail 명령을 사용하여 첨부 파일이 있는 이메일을 보내는 방법

이것이 sendmail 명령을 사용하여 이메일을 보내는 방법입니다.

echo "Dear user,

please find the attached file.

Thanks,
Support team " | mailx -s "x12 extract for 837 transaction" -a $LogFilePath/file.csv $email_id 

그러나 man mailx 명령으로 확인한 "-a 불법 작업" 오류가 발생했습니다. -a와 같은 플래그는 없고 첨부 플래그가 있습니다.

그래서 sendmail 명령을 사용해 보았습니다.

( 
echo $email_id
#From: $email_from_recipients
echo "MIME-Version: 1.0"
echo "Content-Type: text/html; charset=us-ascii"   
echo Subject: Report
$LogFilePath/file.csv

) | /usr/lib/sendmail -t

파일을 첨부파일로 보내지 않았습니다.

csv 파일의 내용은 메시지 본문에 쉼표로 구분되어 표시됩니다.

Unix에서 sendmail 명령을 사용하여 첨부 파일을 보내는 방법은 무엇입니까?

답변1

예를 들어 To 앞에 -a 옵션을 사용해 보십시오.

에코 테스트 | mailx -s "제목 "--attach=/home/someuser/test.txt"[이메일 보호됨]" 또는 에코 테스트 | mailx -s "Subj" -a /home/someuser/test.txt "[이메일 보호됨]"

답변2

sendmail 클라이언트는 MIME에 대해 아무것도 모릅니다. 때를할 수 있다Bash에서 무언극 구조를 만들기 위해 진행했던 길을 계속 따라가면 고통스럽고 오류로 가득 찬 여정을 시작하게 될 것입니다. 특히 쉘 스크립트에서 자신만의 base64 구현을 구현해야 하는 경우에는 더욱 그렇습니다. 일부 이메일 클라이언트는 여전히 uuencoded 첨부 파일을 처리합니다...

(
  echo "here's the file" 
  uuencode $LogFilePath/file.csv
) | mailx -s "x12 extract for 837 transaction" $email_id

...기껏해야 지원이 고르지 않습니다.

MIME을 올바르게 이해하는 메일 클라이언트가 정말로 필요합니다. 대부분의 주요 프로그래밍 언어에 대한 라이브러리가 있지만 스크립트와 쉽게 통합할 수 있는 독립 실행형 프로그램도 있습니다. 물론 직접 컴파일해야 할 수도 있습니다. 귀하의 Linux 버전이 무엇인지 또는 귀하가 시스템 관리자인지 여부를 알려주지 않습니다(그렇지 않은 경우 관리자가 첫 번째 통화 대상이 되어야 합니다).

나는 이 목적을 위해 이전에 mailx(아마도 다른 버전)를 사용한 적이 있습니다. 다음에서 찾을 수 있습니다.소스 포지그리고GitHub각기.

답변3

sendmail을 사용하여 첨부 파일을 만드는 방법은 무엇입니까? 넌 몰라. Sendmail은 메일 전송 에이전트(MTA)입니다. 첨부 파일이나 서명 추가를 포함한 이메일 메시지 작성은 메일 사용자 에이전트(MUA)의 기능입니다. 인기 있는 MUA로는 mutt, elm, exmh, Netscape, Eudora 및 Pine이 있습니다. 일부 특수 패키지(메타메일, 일부 Perl 모듈 등)를 사용하여 첨부 파일이 있는 메시지를 생성할 수도 있습니다.

답변4

--attach

예를 들어echo test | mail -s "Subj" "[email protected]" --attach=/home/someuser/test.txt

관련 정보