This page intentionally left blank
E-Mail mit Anhang von Kommandozeile aus versenden

Ich hatte hier zwar schon einmal einen Artikel geschrieben, wie man bequem per Kommandozeile Dateien in die Dropbox verfrachten kann, so dass man sich von fern über die Dropbox-Homepage oder einen anderen Computer die Datei abholen kann.

Allerdings will man Dropbox vielleicht nicht unbedingt nutzen oder stellt fest, dass das Dropbox-Programm zu Hause wohl nicht aktiv/verbunden ist und die Datei einfach nicht hochgeladen werden will.

Natürlich kann man (bei kleineren Dateien) auch den direkten Weg gehen und sich die Datei(en) einfach selbst per E-Mail zusenden lassen.

Dafür muss das Mailsystem des entfernten Computers natürlich korrekt konfiguriert sein, wozu ich immer WebMin empfehlen kann.

Danach geht mit folgendem Befehl eine beliebige Datei auf Reisen:

echo "Dies ist der Textinhalt der E-Mail" && uuencode /pfad/zu/dateianhang.zip dateianhang.zip | mail -s "Der Betreff lautet Test" lustiger.empfaenger@apfel-z.net

Wichtig ist, dass der Name der Datei innerhalb des uuencode-Befehles zweimal aufgeführt ist, da uuencode als zweites Argument den Ausgabenamen der kodierten Datei benötigt...auch wenn wir die Datei eigentlich nur an den mail-Befehl weiterpipen.

Ich habe in meiner .bash_profile-Datei einen Befehl hinzugefügt, um Dateien und Verzeichnisse auf diese Art bequem mit einem kurzen Befehl an meine E-Mail-Adresse zu versenden.
Auf diesem Weg versendete Dateien werden generell als .tar.gz-verschnürt und gegen ein Versenden von mehr als 10MB (zugegebenermaßen etwas gerundet) wehrt sich der Befehl.

~/.bash_profile
function sendFile() {
  DATEI=$1
  if [[ $DATEI == "" ]]; then
      echo "Bitte als Argument eine Datei oder ein Verzeichnis mitgeben"
      exit 0
      fi
  if [[ ! -f "$DATEI" && ! -d "$DATEI" ]]; then
      echo "Ungültiger Pfad"
      exit 0
      fi
  tar -czf /tmp/sendviamail.tar.gz $1
  # Ist die Datei zu gross?
  if [[ `stat -f%z "$DATEI"` -gt 10000000 ]]; then
      echo "Datei ist groesser als 10MB"
      rm /tmp/sendviamail.tar.gz
      exit 0
      fi
  ( uuencode /tmp/sendviamail.tar.gz datei.tar.gz; echo "Im Anhang ist die georderte Datei zu finden" ) | mail -s "Deine bestellte Datei" lustiger.empfaenger@apfel-z.net
  rm /tmp/sendviamail.tar.gz
  }

Eine beliebige Datei (oder Verzeichnis) landet so durch den Befehl
sendFile /pfad/zu/dateiOderVerzeichnis in der eigenen Mailbox.
 
Google+

Name: E-Mail: 

Bitte beachten Sie: Kommentare werden erst vom Admin gelesen und auf Netiquette geprüft, bevor sie freigeschaltet und hier sichtbar werden.
Die Angabe der E-Mail-Adresse ist optional. Aus Spamschutzgründen und Ihrem eigenen Interesse wird die eingegebene E-Mail-Adresse an dieser Stelle nicht angezeigt, dient jedoch der Kontaktaufnahme des Admins mit dem Autor des Beitrages, sollten sich Fragen ergeben. Außerdem werden Sie, sofern Sie Ihre E-Mail-Adresse angegeben haben, automatisch benachrichtigt, wenn ihr Beitrag freigeschaltet oder von jemand anderem kommentiert wurde.
Beiträge, die Werbung/Spam, mangelnde deutsche Rechtschreibung (seien es auch nur eine Horde Ausrufezeichen hinter einem normalen Satz...ich hasse es), diskriminierende oder beleidigende Worte enthalten, werden nicht freigeschaltet.