2012-06-21 8 views
10

Obiettivo: inviare posta (utilizzando sendmail) con corpo HTML e allegato binario.Utilizzo di sendmail per il corpo HTML e l'allegato binario

seguito gli orientamenti specificati nelle seguenti collegamenti

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

Si sta lavorando nella misura in cui, sia corpo HTML o il fissaggio binario con uuencode, ma non entrambe.

Di seguito è riportato uno snippet dello script della shell su sendmail. Con questo, il corpo HTML sta andando bene, ma l'allegato sta diventando codificato/decodificato in modo errato e incapace di visualizzare lo stesso.

Si prega di avvisare.

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

Sto usando HP-UX ia64. hanno cercato attraverso il forum e web ed ha trovato riferimenti soprattutto per PHP, Python, ecc

+0

usando 'mutt -a' è molto più facile:. Http://www.mutt.org/doc/man_page.html – ceving

+0

Grazie, ma la configurazione del server corrente limita me di Sendmail solo :-(Inoltre, mutt non è installato/setup sul server – compuneo

+0

Invia email del corpo HTML con un allegato di testo semplice con sendmail: http://stackoverflow.com/questions/17359/how-do-i-send-a-file-as-an- email-attachment-using-linux-command-line/14213935 # 14213935 –

risposta

11

Cambiare il tipo di codifica di trasferimento Contenuto all'interno l'email da base64 a uuencode ha risolto il problema. Grazie per gli input finora.

Di seguito è riportato lo script modificato che funziona.

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

Come lo facciamo per più allegati? – divinedragon

+0

@divinedragon, si ripete il codice da 'echo" - $ MAILPART "' prima di 'echo" - $ MAILPART - "'. Questo è ciò che aggiunge un allegato. –

0

prova ad aggiungere una nuova riga dopo uuencode

e tentare anche senza -m

+0

uuencode -m sta aggiungendo automaticamente una nuova riga alla fine.Avevo già provato con -m e non ha funzionato neanche. Ho provato di nuovo entrambi i suggerimenti da tu e lo stesso problema (l'allegato arriva, ma non è valido) – compuneo

Problemi correlati