2012-06-21 2 views
10

목표 : HTML 본문 및 이진 첨부 파일과 함께 메일을 보내려면 (sendmail 사용). HTML 본문 및 이진 첨부 파일에 sendmail 사용

그것은, 그 HTML 본문 또는 UUENCODE와 바이너리 첨부,하지만 하나 둘 정도로 노력하고 다음 링크

http://www.unix.com/shell-programming-scripting/159522-sendmail-html-body-attachment-2.html

http://www.unix.com/shell-programming-scripting/58448-sendmail-attachment.html

에 규정 된 지침을 따랐다.

다음은 sendmail에 대한 쉘 스크립트 스 니펫입니다. 이렇게하면 HTML 본문이 잘 전달되지만 첨부 파일이 잘못 인코딩되거나 디코딩되어 동일한 내용을 볼 수 없습니다.

알려 주시기 바랍니다.

#!/usr/bin/ksh 

export MAILFROM="[email protected]" 
export MAILTO="[email protected]" 
export SUBJECT="Test PDF for Email" 
export BODY="email_body.htm" 
export ATTACH="file.pdf" 
export MAILPART=`uuidgen` ## Generates Unique ID 
(
echo "From: $MAILFROM" 
echo "To: $MAILTO" 
echo "Subject: $SUBJECT" 
echo "MIME-Version: 1.0" 
echo "Content-Type: multipart/mixed; boundary=\"-$MAILPART\"" 
echo "---$MAILPART" 
echo "Content-Type: text/html" 
echo "Content-Disposition: inline" 
cat $BODY 
echo "---$MAILPART" 
echo 'Content-Type: application/pdf; name="'$(basename $ATTACH)'"' 
echo "Content-Transfer-Encoding: base64" 
echo 'Content-Disposition: attachment; filename="'$(basename $ATTACH)'"' 
uuencode -m $ATTACH $(basename $ATTACH) 
echo "---$MAILPART--" 
) | /usr/sbin/sendmail $MAILTO 

HP-UX ia64를 사용 중입니다. 주로 등 PHP, 파이썬에 대한 참조를 포럼과 웹을 통해 검색하고 찾았

+0

'훨씬 더 쉽게 -a' 똥개 사용 :. http://www.mutt.org/doc/man_page.html – ceving

+0

감사합니다,하지만 현재 서버 설정이 날은 :-(센드 메일 제한 또한, mutt이 서버에 설치/설정되지 않았습니다. – compuneo

+0

sendmail을 사용하여 HTML 본문 전자 메일에 일반 텍스트 첨부 파일을 보냅니다. http://stackoverflow.com/questions/17359/how-do-i-send-a-file-as-an- 전자 메일 첨부 파일을 사용하는 linux 명령 줄/14213935 # 14213935 –

답변

11

없이도 시도 후 base64에서 uuencode로 전송 된 이메일이 문제를 해결했습니다. 지금까지 입력 해 주셔서 감사합니다.

다음은 수정 된 스크립트입니다.

#!/usr/bin/ksh 

export MAILFROM="[email protected]" 
export MAILTO="[email protected]" 
export SUBJECT="Test PDF for Email" 
export BODY="email_body.htm" 
export ATTACH="file.pdf" 
export MAILPART=`uuidgen` ## Generates Unique ID 
export MAILPART_BODY=`uuidgen` ## Generates Unique ID 

(
echo "From: $MAILFROM" 
echo "To: $MAILTO" 
echo "Subject: $SUBJECT" 
echo "MIME-Version: 1.0" 
echo "Content-Type: multipart/mixed; boundary=\"$MAILPART\"" 
echo "" 
echo "--$MAILPART" 
echo "Content-Type: multipart/alternative; boundary=\"$MAILPART_BODY\"" 
echo "" 
echo "--$MAILPART_BODY" 
echo "Content-Type: text/plain; charset=ISO-8859-1" 
echo "You need to enable HTML option for email" 
echo "--$MAILPART_BODY" 
echo "Content-Type: text/html; charset=ISO-8859-1" 
echo "Content-Disposition: inline" 
cat $BODY 
echo "--$MAILPART_BODY--" 

echo "--$MAILPART" 
echo 'Content-Type: application/pdf; name="'$(basename $ATTACH)'"' 
echo "Content-Transfer-Encoding: uuencode" 
echo 'Content-Disposition: attachment; filename="'$(basename $ATTACH)'"' 
echo "" 
#uuencode -m $ATTACH $(basename $ATTACH) 
uuencode $ATTACH $(basename $ATTACH) 
echo "--$MAILPART--" 
) > email_`date '+%Y%m%d_%H%M%S'`.out 
| /usr/sbin/sendmail $MAILTO 
+1

여러 첨부 파일을 어떻게 처리합니까? – divinedragon

+0

@divinedragon, 'echo "- $ MAILPART"에서 "echo"이전까지 코드 - $ MAILPART - "'. 그것이 첨부 파일 하나를 추가하는 것입니다. –

0

시도는 새로운 라인을 추가 uuencode

과 내 컨텐츠 전송 인코딩 유형을 변경 -m

+0

uuencode -m은 자동으로 끝에 새 줄을 추가합니다. 이미 -m을 사용하여 시도했지만 어느 것도 작동하지 않았습니다. 두 가지 제안을 모두 다시 시도했습니다. 너와 같은 문제 (첨부 파일은 나오지만 무효). – compuneo

관련 문제