Какую самую простую и желательно наиболее переносимую команду я могу использовать для отправки одного файла по электронной почте в виде вложения в оболочку * nix?
Используя mutt, вы можете:
mutt -z -a <file> -s <subject> -- user@example.com
Или, если вы не хотите вводить текст:
mutt -z -a <file> -s <subject> -- user@example.com < /dev/null
Предполагая, что это двоичное вложение:
uuencode [имя файла] [имя файла] | mail -s [тема] [адрес получателя]
Вам не нужно возиться с UUencoding, если это просто текстовый файл, например:
mail -s [тема] [адрес получателя] <[имя файла]
У большинства * NIX есть mail и uuencode, так что это должно работать практически везде.
"sendEmail это легкий почтовый клиент SMTP с командной строкой. Если вам нужно отправлять электронную почту из командной строки, эта бесплатная программа идеально подходит: проста в использовании и многофункциональна. Он был разработан для использования в сценариях bash, пакетных файлах, программах Perl и веб-сайтах, но вполне адаптируется и, вероятно, будет соответствовать вашим требованиям. SendEmail написан на Perl и уникален тем, что не требует НИКАКИХ МОДУЛЕЙ. Он имеет интуитивно понятный и гибкий набор параметров командной строки, что делает его очень простым в изучении и использовании. [Поддерживаемые платформы: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000 и Windows XP] »
Я использовал его раньше, и он мне очень понравился. Вы можете прикреплять файлы с опцией -a.
Я не могу добавить комментарий, но ..
mailx
у вас есть в наличии.uuencode
технически не будет создавать электронное письмо с вложением. Посмотрите на источник полученного вами электронного письма, чтобы понять, почему.Если вам нужна абсолютная переносимость, вы можете подключиться к своему почтовому серверу через порт 25 через Telnet и напрямую вводить команды SMTP. Они не слишком сложные, и это должно быть очень сценарий.
Быстрый гугл появился эта страница, в котором описаны различные способы прикрепления файлов с помощью различных приложений. Пара наиболее распространенных -
uuenc8de сделать встроенное «вложение».
метапочта -f file-to-attach -m mime-type
mpack -c mime-type file-to-attach
дворняга -a file-to-attach
Вяз -A file-to-attach
Кроме того, в нем есть ссылки на пара сценарии оболочки и Perl скрипт составить и отправить сообщение, которое, вероятно, будет вам больше по душе.
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt my@email.com
Несколько лет назад я написал сценарий оболочки, который сделал именно это. Он назывался binmail.sh. Он использовал кодировщик base64 (многие исходные коды можно найти с гугл) и построил навесное оборудование согласно RFC1521.
Или, если у вас есть python, это займет всего несколько строк, например, перечисленных здесь: Отправка вложений в Python