2016-08-05 41 views
1

Ich möchte eine E-Mail mit Sendmail-Befehl in bash senden. Die E-Mail sollte ihren Körper bekommen, indem sie Input_file_HTML liest und sie sollte die gleiche Eingabedatei auch als Anhang senden. Um dies zu tun haben, habe ich versucht, die folgenden:Sendmail Befehl zum Senden einer Datei als E-Mail-Körper sowie Anhang

sendmail_touser() { 
cat - ${Input_file_HTML} << EOF | /usr/sbin/sendmail -oi -t 
From: ${MAILFROM} 
To: ${MAILTO} 
Subject: $1 
Content-Type: text/html; charset=us-ascii 
cat ${Input_file_HTML} 
Content-Transfer-Encoding: 7bit 
MIME-Version: 1.0 
Content-Disposition: attachment; filename: ${Input_file_HTML} 
EOF 
} 

Der obige Befehl wird geben eine E-Mail mit nur Befestigung von Input_file_HTML und es wird nicht in den Körper der E-Mail zu schreiben. Könnten Sie mir bitte helfen? Ich verwende Outlook als E-Mail-Client. Ich habe sogar den Befehl cat im obigen Befehl entfernt, aber es funktioniert auch nicht.

+0

Sie können die Antwort akzeptieren, indem Sie auf das Kontrollkästchen unter der Abstimmungsschaltfläche klicken ... – Questionmark

Antwort

2

Verwenden Sie stattdessen mutt?

echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- [email protected] 

Um mutt auf Debian-Systemen zu installieren:

sudo apt-get install -y mutt 

EDIT die Sie interessieren, wenn Sie sendmail verwenden können:

sendmail_attachment() { 
    FROM="$1" 
    TO="$2" 
    SUBJECT="$3" 
    FILEPATH="$4" 
    CONTENTTYPE="$5" 

    (
    echo "From: $FROM" 
    echo "To: $TO" 
    echo "MIME-Version: 1.0" 
    echo "Subject: $SUBJECT" 
    echo 'Content-Type: multipart/mixed; boundary="GvXjxJ+pjyke8COw"' 
    echo "" 
    echo "--GvXjxJ+pjyke8COw" 
    echo "Content-Type: text/html" 
    echo "Content-Disposition: inline" 
    echo "<p>Message contents</p>" 
    echo "" 
    echo "--GvXjxJ+pjyke8COw" 
    echo "Content-Type: $CONTENTTYPE" 
    echo "Content-Disposition: attachment; filename=$(basename $FILEPATH)" 
    echo "" 
    cat $FILEPATH 
    echo "" 
    ) | /usr/sbin/sendmail -t 
} 

Verwendung wie folgt aus:

sendmail_attachment "[email protected]" "[email protected]" "Email subject" "/home/user/file.txt" "text/plain" 
+0

Hallo Nick, Vielen Dank für Ihre Antwort. Ich bin keine Wurzel und ich habe keinen Mutt-Befehl. Könnten Sie mich bitte hier führen, wird Ihnen dankbar sein. – RavinderSingh13

+1

Könnten Sie den Systemadministrator bitten, ihn zu installieren? Dies ist ein sehr einfacher Weg, um zu erreichen, was Sie wollen. –

+0

@RavinderSingh Das Update funktioniert möglicherweise für Sie. –