Действительно ли возможно послать содержание по электронной почте энергии с помощью HTML

Мне нравится просматривать текущие различия в исходных файлах, как которые я продолжаю работать с командой:

vim <(svn diff -dub)

То, что я действительно хотел бы смочь сделать, должно послать по электронной почте это цветное различный. Я знаю, что энергия может экспортировать HTML с: TOhtml, но как я конвейерно обрабатываю этот вывод в электронное письмо HTML? Идеально. я хотел бы смочь отправить разность HTML с единственной командой сценария оболочки.

6
задан brianegge 1 April 2010 в 14:23
поделиться

2 ответа

Следующий однострочный файл создает HTML-файл с именем email.html :

diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'

Теперь вы можете использовать код Пекки для отправки электронного письма.

Однако , я верю в использование правильного инструмента для правильной работы - и 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 

РЕДАКТИРОВАТЬ В случае, если код Пекки не работает - как по мне - потому что у вас нет необходимых версий 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 . Просто вставьте остальные команды в нужное место выше и удалите перенаправления в файл.

10
ответ дан 9 December 2019 в 22:31
поделиться

Я не Linux Guru, но похоже, что это должно удовлетворить ваши потребности, чтобы передать ваш вывод в:

Отправить HTML-файл по электронной почте из командной строки. (использует почту )

Здесь также есть однострочный пример mutt здесь :

mutt -e "my_hdr Content-Type: text/html" 
     -s "my subject" you@xxxxxxxxxxx < message.html

будет сгенерировано электронное письмо в чистом HTML без альтернативы в чистом виде - для этого вам нужно будет создать почту, состоящую из нескольких частей ... Но, возможно, она подойдет для того, что вам нужно.

1
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: