it-swarm.com.de

Wie kann ich einen Anhang über die Befehlszeile per E-Mail versenden?

Können Anhänge über die Befehlszeile per E-Mail versendet werden?

Wenn möglich, möchte ich etwas so Einfaches wie:

mail -a myfile.txt -t [email protected] -s "Here's my file"
25
conorgriffin

Von allen E-Mail-Benutzeragenten im Ubuntu-Repository scheint mutt die Befehlszeilen-MUA zu sein, die mit Langzeitunterstützung gesegnet ist.

Laut dem Handbuch können Sie genau Folgendes tun:

mutt -a myfile.txt -s "Here's my file" -- [email protected]

außer es wird nirgendwo hingehen, da man auch einen Mail Transfer Agent benötigt. Beliebte sind:

  • das ehrwürdige sendmail
  • postfix
  • exim4
  • qmail
  • nullmailer

und die einzigen, die Canonical zu unterstützen scheint, sind postfix (danke für die Korrektur Steve) und exim4 .

Man könnte auch sagen, dass xdg-email auch eine richtige Ubuntu-MUA ist, aber es ist ein Bare-Bones-Frontend, das nur Ihre bevorzugte MUA in Ihrem Namen ausführt.

Wenn Sie Ratschläge dazu wünschen, welcher MTA für Ihre Verwendung geeignet sein könnte, öffnen Sie hier möglicherweise eine andere Frage.

18
msw

Ich hatte auch große Probleme mit dem Versenden von Anhangsdateien. Wenn ich eine E-Mail ohne Anhang gesendet habe, war sie erfolgreich, aber ohne Anhang. Dieses Problem trat bei den Befehlen sendemail, mutt, mail, mailx, uuencode auf.

Zum Glück wurde es witzig gelöst. Ich benutze Google Mail zum Senden von E-Mails. Sie können Ihr Google Mail-Konto so konfigurieren, dass E-Mails über Befehle im Terminal gesendet werden, wie unter http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html angegeben.

Sie können eine Text-E-Mail senden, indem Sie Folgendes verwenden:

mail -s "hello" [email protected] < /home/masoud/YOURFILE.txt 

sie können jedoch nicht dieselbe Datei als Anhang wie folgt senden :

mail -s "hello" [email protected] -a /home/masoud/YOURFILE.txt

oder:

mail -s "hello" -a /home/masoud/YOURFILE.txt [email protected]

Schließlich habe ich verstanden, dass nur dieses Format einen Anhang senden kann:

echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt [email protected]

Komischerweise besteht der Unterschied in der Existenz des "Echo" -Befehls.

Update: 201808

Scheint, dass die Option -a mit Großbuchstaben -A für den Anhang geändert wurde. Der -a scheint für das Ändern des Headers gemäß doc zu sein

11
Masoud

Ich fand, dass der Befehl und die Parameter vor kurzem geändert worden sind.

Wenn Sie Ihre Anhänge mit diesem Befehl senden möchten:

mail -s "your subject" [email protected] -A /your/attachment/absolute/path < /home/you/message.txt

Die Option attachment sollte -A sein. Dies ist CAPITAL A.

6
Alex

Möglicherweise möchten Sie eine Datei senden aus der Shell, andernfalls verwenden Sie Thunderbird.

In diesem Fall ist es hilfreich, Thunderbird -remote ... zu versuchen - vorausgesetzt, Thunderbird wird normalerweise ausgeführt:

Der Befehl öffnet ein Mail-Erstellungsfenster einer laufenden Thunderbird-Instanz.
Die "Von" -Adresse ist Ihre Standardadresse, die in Thunderbird konfiguriert wurde.
Auch die vorhandenen Kontoeinstellungen werden verwendet, es ist keine separate Einrichtung erforderlich.

Für eine E-Mail an [email protected] mit Betreff "S", Text "B" und einem Anhang /some/absolute/file.txt lautet der Befehl

Thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='[email protected]',body='B',attachment='/some/absolute/file.txt')"

Es gibt zwei Probleme:

Die angehängte Datei muss durch ein absoluter Pfad angegeben werden, was in der Praxis mühsam ist. Dies kann mit readlink -f erledigt werden, um relative Pfade aufzulösen:

Thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='[email protected]',body='B',attachment='$(readlink -f file.txt)')"

Außerdem ist der Befehl zu lang. Verwenden Sie ein Shell-Skript oder eine Shell-Funktion mit vier Argumenten:

Thunderbird-compose () {
    Thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}

Mit dieser Funktion wird der Befehl lesbar:

Thunderbird-compose 'Some Subject' [email protected] 'Body of message' file1

öffnet ein Thunderbird "Write" Fenster mit dem Anhang, und Von, Bis, Betreff und Nachrichtentext werden ausgefüllt. Es kann bearbeitet sein, bevor es gesendet wird.

3
Volker Siegel

Das Paket heirloom-mailx in debian bietet den Befehl mailx, um auf einfache Weise MIME-Anhänge zu senden. folgendes arbeitet für mich;

 mailx -a attachment.Zip -s subject [email protected]
2
Furkan Mustafa

Ich möchte eine weitere Antwort hinzufügen, die zum Hinzufügen von Nachrichtentext zusammen mit dem Anhang verwendet wird. Prost!!

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