it-swarm.com.de

Verwenden von sendmail für HTML-Text und binären Anhang

Ziel: Mail senden (mit sendmail) mit HTML-Body und binärem Anhang.

Befolgen Sie die in den folgenden Links angegebenen Richtlinien

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

Es funktioniert soweit, dass entweder HTML-Body oder der binäre Anhang mit uuencode, aber nicht beides.

Im Folgenden finden Sie einen Ausschnitt aus dem Shell-Skript für sendmail. Damit ist der HTML-Body in Ordnung, aber der Anhang wird falsch codiert/decodiert und kann nicht angezeigt werden.

Bitte beraten.

#!/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

Ich verwende HP-UX ia64. Ich habe im Forum und im Web gesucht und Verweise gefunden, die hauptsächlich auf PHP, Python usw. verweisen.

10
compuneo

Durch Ändern des Codierungstyps für die Inhaltsübertragung in der E-Mail von base64 in uuencode wurde das Problem behoben. Vielen Dank für die bisherigen Eingaben.

Da unten ist das überarbeitete Skript, das funktioniert.

#!/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
11
compuneo

versuche nach uuencode eine neue Zeile einzufügen

und versuche es auch ohne -m

0