Следующая строка содержит файл HTML с именем email.html
:
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'
Теперь вы можете использовать код Pekka для отправки электронного письма.
Однако Я верю в использование правильного инструмента для правильной работы - и VIM, возможно, не является правильным инструментом здесь.Существуют и другие маркеры, и их использование здесь более уместно.
Например, Pygments можно использовать для получения того же результата, гораздо более эффективно и без проблем:
diff -u report.log .report.log | pygmentize -l diff -f html > email.html
Обратите внимание, что при этом создается только фактическое текстовое тело, а не таблица стилей или окружающий каркас HTML.Это нужно добавить отдельно, но это тоже не сложно.Вот полный скрипт bash для создания допустимого минимального HTML-файла:
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 В случае, если код Пекки не сработал - как для меня - потому что у вас нетнеобходимые версии mail
и mutt
установлены, тогда вы можете использовать sendmail
для отправки электронного письма в формате HTML следующим образом:
( echo 'To: email-address@example.com'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html ) | sendmail -t
Важно оставить пустую строку между заголовком и теломЭл. адрес.Также обратите внимание, что, конечно, нет необходимости создавать временный файл email.html
.Просто вставьте остальные команды в нужное место и удалите перенаправления в файл.