Die folgenden Einzeiler erzeugen eine HTML-Datei email.html
genannt:
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'
Sie jetzt Pekka des Code verwenden, um die E-Mail zu senden.
Aber, ich glaube an die Verwendung des richtigen Tools für den richtigen Job - und VIM ist möglicherweise nicht das richtige Werkzeug hier. Andere Textmarker existieren und ihre Verwendung ist hier angemessener.
Zum Beispiel Pygments kann das gleiche Ergebnis, wesentlich effizienten und stressfrei produzieren nutzbar gemacht werden:
diff -u report.log .report.log | pygmentize -l diff -f html > email.html
Beachten Sie, dass diese produziert nur die eigentlichen Textkörper, nicht das Stylesheet, noch das umgebende HTML-Gerüst. Dies muss separat hinzugefügt werden, aber das ist auch nicht schwierig. Hier ist ein kompletter Bash-Skript eine gültige minimale HTML-Datei zu erzeugen:
echo '<!DOCTYPE html><html><head><title>No title</title><style>' > email.html
pygmentize -S default -f html >> email.html
echo '</style></head><body>' >> email.html
diff -u report.log .report.log | pygmentize -l diff -f html >> email.html
echo '</body></html>' >> email.html
EDIT Im Fall, dass Pekka Code funktioniert nicht - wie für mich - weil Sie nicht die erforderlichen Versionen von mail
haben und mutt
installiert, dann können Sie sendmail
wie folgt verwenden die HTML-E-Mail senden:
(echo 'To: [email protected]'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html) | sendmail -t
Es ist wichtig, eine leere Zeile zwischen dem Kopf und dem Körper der E-Mail zu verlassen. Beachten Sie auch, dass es unnötig ist, die temporäre Datei email.html
zu erstellen. Fügen Sie einfach die restlichen Befehle an der richtigen Stelle oben ein und löschen Sie die Weiterleitungen in die Datei.
Sie haben eine interessante Definition von "effizienter und stressfreier". +1, wie vim zum Schreiben und Beenden von der Kommandozeile kommt. – rampion
Sie könnten die "+ w email.html" zu '+%! Mutt' oder was auch immer ändern, um vim den Mailbefehl direkt aufzurufen – rampion
@rampion: Das Starten von Vim auf diese Weise ist eigentlich ziemlich ineffizient. Pygments übertreffen es leicht.Mit "stressfrei" meine ich einfach, dass der Arbeitsablauf von "Pinguments" konzeptionell einfacher ist ("Syntax-Hervorhebung eines Vergleichs", im Gegensatz zu "Öffnen eines Vergleichs in einem Editor, Ausführen eines Befehls, Schließen des Editors"), obwohl es mehr Text enthält schreiben. Beide Methoden haben ihre Vorzüge, denke ich. –