이것이 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
답변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