С mail
(от mailutils
), единственный способ послать электронное письмо, которое имеет сообщение HTML и вложение, состоит в том, чтобы включать сообщение из файла, как это:
mail \
--content-type=text/csv --attach=/tmp/filename.csv \
-a "From: sender@example.com" \
-s "An HTML Email with Attachment, Yay!" \
--content-type=text/html \
recipient@example.com < /tmp/filename.txt
Что я должен сделать, однако захват тот последний файл (filename.txt
тот с HTML в нем) от удаленного сервера.
Я могу ssh в удаленный сервер никакие проблемы с ключом, например,
ssh user@123.456.789.0
Но когда я пытаюсь указать mail
управляйте к тому местоположению на удаленном сервере, я не получаю "такого файла или каталога", но нет никакого вопроса, который файл там.
mail \
--content-type=text/csv --attach=/tmp/filename.csv \
-a "From: sender@example.com" \
-s "An HTML Email with Attachment, Yay!" \
--content-type=text/html \
recipient@example.com < ssh user@123.456.789.0:/tmp/filename.txt
Я попробовал каждую комбинацию обратных галочек и каналов, о которых я могу думать, но я не могу заставить ее работать.
Между прочим, да, пользователь от локального сервера может просмотреть и открыть и отредактировать удаленный файл при входе в систему как пользователь на удаленном сервере ssh.
Так
ssh user@123.456.789.0
nano /tmp/filename.txt
хорошо работает.
Какие-либо идеи?
В настоящее время я просто копирую файл в другой сервер прежде, чем послать электронное письмо, но я не должен делать этого. Очень предпочтите остроту.
Я нахожусь на Ubuntu 18.04 на обоих серверах. Используя постфикс с mailutils.
попытайтесь заменить
... < ssh user@123.456.789.0:/tmp/filename.txt
... <<< `ssh user@123.456.789.0 cat /tmp/filename.txt`
ssh может только выполнить удаленную команду, /tmp/filename.txt не является командой, таким образом ошибка.
С другой стороны, можете Вы использовать канал
ssh user@123.456.789.0 cat /tmp/filename.txt | mail ...