Wie sende ich eine E-Mail mit Anhang per Postfix über die Befehlszeile?

10

Ich habe gerade einen neuen Ubuntu 10.04 LTS-Server auf Linode für mich eingerichtet. Befolgen Sie eine ausgezeichnete Anleitung unter: Hier , um die Installation einiger grundlegender Dinge einschließlich Postfix abzuschließen.

Ich versuche herauszufinden, wie ich eine E-Mail mit einem Anhang an meine Google Mail-Adresse senden kann, kann aber nicht finden, wie. Bereits bestätigt, dass E-Mail mein Google Mail-Konto erreichen kann.

Am Ende muss ich mutt verwenden, um die E-Mail mit Anhängen zu senden. Wahrscheinlich wird SendEmails auch gut funktionieren, aber ich frage mich, wie ich das gleiche in Postfix über die Befehlszeile tun kann.

Vielen Dank im Voraus für diese dumme Frage.

Michael Mao
quelle

Antworten:

14

Warum muss es postfixdirekt sein? mailx -a,, muttoder verwendet mutt -aauch die sendmailSchnittstelle - es sei denn, Sie konfigurieren sie für SMTP.

echo "Dies ist eine Testnachricht" | mutt -s Test -a foo.zip - $ USER
echo "Dies ist eine Testnachricht" | mail -s Test -a foo.zip $ USER

(Beachten Sie, dass in bsd-mailx -Astattdessen die Option verwendet wird .)


Wie auch immer, hier ist ein "Postfix" -Beispiel.

Ersetzen $USER, Inhaltstyp und Dateiname entsprechend Ihrer Umgebung. In diesem Beispiel wird davon ausgegangen, dass Sie die Nachricht an sich selbst senden und eine ZIP-Datei foo.zipim aktuellen Verzeichnis haben.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Erstellung von mehrteiligen MIME-Nachrichten, die dem Leser als Übung hinterlassen wurden.)

user1686
quelle
mail -a foo.zipwird nicht foo.zipwie bei einer Nachricht angehängt mutt.
Nr.
@ nicolai.rostov: hängt davon ab mail, denke ich. Dies geschieht in heirloom-mailx.
user1686
7

Postfix ist ein Mail Transfer Agent (MTA) . Seine Aufgabe ist es, die Zustellung der Post zu erledigen: sie abholen und an den nächsten Punkt auf ihrer Route senden. Postfix ist ein Postangestellter, dessen Aufgabe es ist, einen Umschlag zu nehmen und ihn (mit Hilfe seiner Kollegen) zum Empfänger zu bringen.

Was Sie hier verlangen, ist Sekretariatsarbeit: Zusammenstellen von Dokumenten, um sie in den Umschlag zu stecken. Das ist nicht der Job von Postfix: Es ist ein Job für einen Mail User Agent (MUA) . Sie können eine grobe MUA schreiben, die nur Teile zusammensetzt, um eine Mail in ein paar Zeilen Shell zu erstellen , wie es Grawity getan hat , aber Mutt ist wirklich ein gutes Werkzeug für diese Aufgabe.

Gilles 'SO - hör auf böse zu sein'
quelle
4

Über die Kommandozeile verwende ich gerne "sendemail", die auf Ubuntu / Debian wie folgt über die Kommandozeile installiert werden kann:

apt-get install sendemail

Dann können Sie es einfach anweisen, localhost (Postfix) als MTA zu verwenden.

Eigentlich habe ich gerade bemerkt, dass localhost: 25 die Standardeinstellung ist:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Anschließend fügen Sie Anhänge mit dem Flag -a hinzu:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip
Docunext
quelle
1

mailx 12.4 bietet eine Option zum Anhängen von Dateien:

-a Datei
    Hängen Sie die angegebene Datei an die Nachricht an.

Zum Beispiel:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
Dies ist die Pine-Software, nach der Sie gefragt haben Enter
.Enter
EOT
[gawad @ centos Desktop] $ 
user228560
quelle