Wer den Mailinator und seine Verwandten benutzt, hat unter Umständen das Problem, daß er einerseits nicht weiß wann die erwartete e-Mail eintrifft, andererseits aber Mailinator selbige nach ein paar Stunden löscht. Dies läßt sich durch ein kleines Bashskript beheben, welches die e-Mails abholt.
Was macht das Skript genau?
#!/usr/bin/env bash # Skript Mailinatorabfrage # Beschreibung Holt e-Mail von Mailinator.com ab. # Parameter $1: Die e-Mailadresse die abgefragt werden soll; optional. # $2: Der Pfad wo die Mail(s) gespeichert werden sollen; optional. Mailadresse=${1:-'Test@mailinator.com'} Pfad=${2:-$HOME'/Downloads/'}${Mailadresse}_$(date "+%Y.%m.%d-%H%M") Domain='http://'${Mailadresse#*@} URL_Fach=$Domain'/maildir.jsp?email='${Mailadresse%@*}'&x=0&y=0' Inhalt='maildir.html' mkdir $Pfad cd $Pfad curl -A "Anonymous" $URL_Fach -o $Inhalt if [ -e $Inhalt ]; then for Zeile in $(cat $Inhalt | grep -Eio '/showmail.jsp([^>])*') do Betreff=$(grep -Eio "${Zeile#*&}.*</a>" < $Inhalt) Betreff=${Betreff#*>} Betreff=${Betreff%<*} curl -A 'Anonymous' ${Domain}${Zeile%>*} -o "$Betreff"'.html' done srm -srf $Inhalt fi
Das Skript hat zwei optionale Parameter
Die regelmäßige Ausführung des Skriptes ist unter Linux ein cron-Job, unter MacOS X wird eine separate plist-Datei benötigt. Der Aufbau ist relativ einfach, zur Erstellung werden folgende Angaben benötigt:
Ausgehend von diesen Annahmen kann mit jedem beliebigen Texteditor die plist erstellt werden:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <false/> <key>Label</key> <string>Mailinator.Test</string> <key>ProgramArguments</key> <array> <string>/Users/Loginname/bin/Mailinatorabfrage</string> <string>Test@mailinator.com</string> </array> <key>RunAtLoad</key> <true/> <key>StartInterval</key> <integer>3600</integer> </dict> </plist>
Die Datei jetzt noch als reinen Text unter dem Namen »Mailinator.Test.plist« in »~/Librqary/LaunchAgents« speichern.
Die Angaben unter <array> sind übrigens nichts anderes als ein Skriptaufruf im Terminal mit Parameter:
#:~/bin>Mailinatorabfrage Test@mailinator.com
Ab dem nächsten Neustart wird dann jede Stunde dieses Skript ausgeführt. Eleganter steuert man es aber über die Kommandozeile. Jeweils eines der nachfolgenden (selbsterklärenden ?) Kommandos im Terminalfenster aufrufen:
#:~/Library/LaunchAgents>launchctl load Mailinator.Test.plist #:~>launchctl start Mailinator.Test #:~>launchctl list Mailinator.Test #:~>launchctl stop Mailinator.Test #:~/Library/LaunchAgents>launchctl unload Mailinator.Test.plist #:~>launchctl help
Wie auch bei anderen Dingen, sollte man Fairness walten lassen und die automatishe Abfrage nicht unnötig und immerwährend laufen lassen. Der Zeitraum in dem Mails eintreffen können ist ja meist auf wenige Stunden beschränkt. Es ist aber gut geeingnet längere Arbeitspausen oder die Nacht abzudecken.
Wer seine eingehenden Mails nur so Abfragen und speichern will kann das Skript natürlich auch direkt im Terminal aufrufen oder in ein kleines AppleSkript einbetten und per Menü im Finder aufrufen:
tell application "Finder" activate do shell script "Mailinatorabfrage 'Test@mailinator.com'" end tell
Labels: Bash, cURL, IT, MacOS X, Mailinator, plist, Skripttipp, Terminal
Kommentare: