Назад | Перейти на главную страницу

Самый простой способ отправить файл по электронной почте через командную строку в * nix?

Какую самую простую и желательно наиболее переносимую команду я могу использовать для отправки одного файла по электронной почте в виде вложения в оболочку * 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 у вас есть в наличии.
  • Хотя файл должен без проблем отображаться принимающим MUA, конвейер от 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