3 Stimmen

Wie sende ich eine einfache Textdatei als Anhang mit einem HP-UX-Shell-Skript?

Ich muss eine E-Mail mit einer Textdatei als Anhang unter Verwendung eines Shell-Skripts in HP-UX senden; Ich habe mutt nicht installiert.

Ich verwende folgenden Befehl, aber er sendet den Dateiinhalt im E-Mail-Body, ich möchte ihn als Anhang.

mailx -s "Bericht" name@example.com < file.txt

4voto

glenn jackman Punkte 221248

Ich habe diese ksh Funktion vor ein paar Jahren geschrieben

# Verwendung: email_anhang to cc betreff körper anhang_dateiname
email_anhang() {
    to="$1"
    cc="$2"
    betreff="$3"
    körper="$4"
    dateiname="${5:-''}"
    grenze="_====_blah_====_$(date +%Y%m%d%H%M%S)_====_"
    {
        print -- "An: $to"
        print -- "Cc: $cc"
        print -- "Betreff: $betreff"
        print -- "Content-Type: multipart/mixed; boundary=\"$grenze\""
        print -- "Mime-Version: 1.0"
        print -- ""
        print -- "Dies ist eine Multi-Part-Nachricht im MIME-Format."
        print -- ""
        print -- "--$grenze"
        print -- "Content-Type: text/plain; charset=ISO-8859-1"
        print -- ""
        print -- "$körper"
        print -- ""
        if [[ -n "$dateiname" && -f "$dateiname" && -r "$dateiname" ]]; then
            print -- "--$grenze"
            print -- "Content-Transfer-Encoding: base64"
            print -- "Content-Type: application/octet-stream; name=$dateiname"
            print -- "Content-Disposition: attachment; filename=$dateiname"
            print -- ""
            print -- "$(perl -MMIME::Base64 -e 'undef $/; open $fh, shift; print MIME::Base64::encode(<$fh>); close $fh; ' $dateiname)"
            print -- ""
        fi
        print -- "--${grenze}--"
    } | /usr/lib/sendmail -oi -t
}

3voto

Johnsyweb Punkte 128606

uuencode ist dein Freund.

Hier ist ein getestetes Beispiel:

(uuencode .vimrc vimrc.txt; uuencode .zshrc zshrc.txt; echo Hier sind deine Anhänge) | mailx -s 'Mail mit Anhängen' email_adresse

1voto

Ryan E Punkte 479

Ich hatte das gleiche Problem, bei dem die Ausgabe von uuencode als Teil des Nachrichtentextes und nicht als angehängte Datei gesendet wurde (zumindest wenn Outlook 2010 zum Anzeigen der gesendeten E-Mail verwendet wurde). Ich habe die Antwort in diesem Thread gefunden http://www.unix.com/hp-ux/41306-sending-attachments-through-mailx.html

Das Hinzufügen von -m bewirkt, dass mailx beim Versenden von E-Mails keine MIME-Headerzeilen hinzufügt. Der Befehl des OP würde geändert aussehen:

mailx -m -s "Bericht" name@example.com < file.txt

1voto

peltho Punkte 116

Ich hatte das gleiche Problem auch vor ein paar Monaten.
Der Befehl, den ich brauchte, war ux2dos

( cat message_content_file; ux2dos file.txt | uuencode file.txt file.txt ) | mailx -m -s "Betreff" -r mail@absender mail@empfänger

Ich hoffe, es kann helfen!
Grüße

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X