CSV file
다음 쉘 스크립트를 사용하여 첨부 파일이 포함된 이메일을 보내고 사용 가능한 데이터를 텍스트 파일로 인쇄하려고 합니다 . Email body
하지만 첨부 파일만 수신하고 다음 스크립트를 실행한 후 받은 이메일에는 이메일 본문이 없습니다. 누구든지 이 문제를 해결하도록 도와줄 수 있습니까?
스크립트 실행:
sh <script_name> CSV File 2012
코드-1:
#!/bin/bash
export MAILTO="[email protected]"
export SUBJECT="Test - \"$1\""
export BODY="$2.txt"
export ATTACH_CSV=""$2"_"$3".csv"
csv_file=$( basename "$ATTACH_CSV" )
{
echo "To: $MAILTO"
echo "Subject: $SUBJECT"
echo "Content-Type: multipart/mixed; boundary=\"FILEBOUNDARY\""
echo "--FILEBOUNDARY"
echo "Content-Type: multipart/mixed; boundary=\"MSGBOUNDARY\""
echo "--MSGBOUNDARY"
echo "Content-Type: text/html; charset=iso-8859-1"
echo "Content-Transfer-Encoding: 8bit"
#echo "Content-Disposition: inline"
cat "$BODY"
echo "--MSGBOUNDARY--"
echo "--FILEBOUNDARY"
echo "Content-Type: text/csv"
echo "Content-Disposition: attachment; filename=\"${csv_file}\""
echo "Content-Transfer-Encoding: uuencode"
uuencode "$ATTACH_CSV" "$csv_file"
echo "--FILEBOUNDARY--"
} | sendmail -t
코드-2:
#!/bin/bash
export MAILTO="[email protected]"
export SUBJECT="Test - \"$1\""
export BODY="$2.txt"
export ATTACH_CSV=""$2"_"$3".csv"
csv_file=$( basename "$ATTACH_CSV" )
{
echo "To: $MAILTO"
echo "Subject: $SUBJECT"
echo "Content-Type: multipart/mixed; boundary=\"FILEBOUNDARY\""
echo "--FILEBOUNDARY"
echo "Content-Type: multipart/alternative; boundary=\"MSGBOUNDARY\""
echo "--MSGBOUNDARY"
echo "Content-Type: text/plain; charset=iso-8859-1"
echo "Content-Transfer-Encoding: 8bit"
echo "Content-Disposition: inline"
cat "$BODY"
echo "--MSGBOUNDARY--"
echo "--FILEBOUNDARY"
echo "Content-Type: text/csv"
echo "Content-Disposition: attachment; filename=\"${csv_file}\""
echo "Content-Transfer-Encoding: uuencode"
uuencode "$ATTACH_CSV" "$csv_file"
echo "--FILEBOUNDARY--"
} | /usr/sbin/sendmail -t
답변1
- 잘못된 메시지를 작성하고 있습니다. 메시지 헤더와 본문 사이에는 항상 빈 줄이 필요합니다. 헤더에는
Content-Type:
경계 정의가 다른 두 항목이 있으며, 이들 사이의 경계 문자열은 본문의 별도 MIME 부분에만 속합니다. MIME 메시지를 작성하는 방법에 대한 심층적인 정보나 튜토리얼을 찾아보는 것이 좋습니다. - 본질적으로 동일한 정보를 텍스트로 한 번, CSV 파일로 한 번 표현하는 경우에는 를 사용하는 것이 가장 좋으
multipart/alternative
므로 마일리지가 달라질 수 있습니다.