Использование sendmail для HTML и двоичного вложения

objective: отправить почту (используя sendmail) с телом HTML и бинарным вложением.

Следуя рекомендациям, указанным в следующих ссылках

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

Он работает настолько, что либо тело HTML, либо двоичное вложение с uuencode, но не оба.

Ниже приведен fragment сценария оболочки для sendmail. При этом тело HTML идет хорошо, но вложение получает кодирование / декодирование ошибочно и не может просматривать то же самое.

Пожалуйста, порекомендуйте.

#!/usr/bin/ksh export MAILFROM="noreply@site.dom" export MAILTO="somebody@somesite.com" 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, Python и т. Д.

    Изменение типа кодирования передачи содержимого в электронной почте от base64 до uuencode разрешило проблему. Спасибо за вклад до сих пор.

    Ниже приведен переработанный скрипт, который работает.

     #!/usr/bin/ksh export MAILFROM="noreply@domain.com" export MAILTO="mail.to@gmail.com" 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 

    попробуйте добавить новую строку после uuencode

    и попробуйте также без -m