Можно ли отправлять вложения по электронной почте из командной строки?
Если возможно, я бы хотел что-то простое, как:
mail -a myfile.txt -t me@example.com -s "Here's my file"
Можно ли отправлять вложения по электронной почте из командной строки?
Если возможно, я бы хотел что-то простое, как:
mail -a myfile.txt -t me@example.com -s "Here's my file"
Ответы:
Похоже, что из всех почтовых агентов в репозитории Ubuntu mutt - это MUA командной строки, наделенный долгосрочной поддержкой.
Согласно инструкции , вы можете сделать что-то в точности как:
mutt -a myfile.txt -s "Here's my file" -- me@example.com
за исключением того, что он никуда не денется, так как также нужен агент пересылки почты Популярные из них:
и единственное, что Canonical, похоже, поддерживает, это postfix (спасибо за исправление Steve) и exim4 .
Можно также сказать, что xdg-email также является надлежащим MUA Ubuntu, но это простой интерфейс, который выполняет предпочитаемый MUA только от вашего имени.
Если вам нужен совет, какой MTA может подойти для вашего использования, возможно, откройте еще один вопрос здесь.
mutt
команды работал так, как было объявлено. Между прочим, у nullmailer есть фальшивый интерфейс sendmail, так что большинство программ, ожидающих взаимодействия с sendmail, перетасовываются в настоящий MTA без каких-либо усилий с моей стороны.
У меня тоже были проблемы с отправкой файлов вложений. Когда я отправил электронное письмо без вложения, оно прошло успешно, но не было вложения. Эта проблема была существует с sendemail
, mutt
, mail
, mailx
, uuencode
командой.
К счастью, это было решено до смешного. Я использую Gmail для отправки электронной почты. Вы можете настроить свой gmail для отправки электронных писем с помощью команд в терминале, как указано на http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html .
Вы можете отправить текстовое электронное письмо, используя:
mail -s "hello" RECEIVE@mail.com < /home/masoud/YOURFILE.txt
но вы не можете отправить тот же файл, что и вложение, как показано ниже:
mail -s "hello" RECEIVE@mail.com -a /home/masoud/YOURFILE.txt
или:
mail -s "hello" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
Наконец, я понял, что только этот формат может отправить вложение:
echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
Как ни странно, разница в существовании команды "echo".
Кажется, что -a
опция была изменена с Uppercase -A
для вложения сейчас. -a
, Кажется, для изменения заголовка согласно документу
.zshrc
кому-то свой файл, и хотя я часто использую mail
его для отправки быстрых сообщений, попытка отправить вложение не работает. Мне просто нужно было подтвердить, что можно было понять, что порядок аргументов очень важен. Это сработало для меня: mail -s "zshrc" -a ~/.zshrc username@example.com
... конечно, мне все еще приходилось набирать текст сообщения и нажимать ctrl+d
на последнюю пустую строку.
mail username@example.com -a ~/.zshrc
«сработало» в том смысле, что оно отправило сообщение, но не отправило файл. Если бы я попробовал, mail username@example.com -a ~/.zshrc -s 'zshrc'
было бы очевидно, что параметры после адреса получателя игнорировались.
Вы можете отправить файл из оболочки , но в противном случае используйте Thunderbird .
В этом случае try thunderbird -remote ...
полезен - предполагается, что обычно запускается thunderbird:
Команда открывает окно создания почты работающего экземпляра Thunderbird.
Адрес «От» - это ваш адрес по умолчанию, настроенный в Thunderbird.
Кроме того, используются существующие настройки учетной записи , отдельная настройка не требуется.
Для почты, адресованной you@example.com
, с темой "S", телом "B" и вложением /some/absolute/file.txt
, команда
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='/some/absolute/file.txt')"
Есть две проблемы:
Прикрепленный файл должен быть указан по абсолютному пути , что на практике утомительно. Это можно изменить, используя readlink -f
для разрешения относительных путей:
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='$(readlink -f file.txt)')"
Также команда долгая. Используйте сценарий оболочки или функцию оболочки с четырьмя аргументами:
thunderbird-compose () {
thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}
С помощью этой функции команда становится читаемой:
thunderbird-compose 'Some Subject' test@example.com 'Body of message' file1
откроет окно Thunderbird «Write» с вложенными файлами , заполненными From, To, Subject и основным текстом. Его можно отредактировать перед отправкой.
heirloom-mailx
Пакет в Debian предоставляет mailx
команду для простой отправки MIME-вложений. следующие работы для меня;
mailx -a attachment.zip -s subject rctp@domain.to
mail
и mailx
включен RH-двойники имеют -a
для вложенных файлов, но один включенные в Debian-двойниках нет.
Я хочу добавить еще один ответ, который используется для добавления основного текста вместе с приложением. Ура !!
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
mail
(akamailx
) - MIME невежественный, поэтому не может обрабатывать вложения любым способом, не относящимся к 1980-м годам. Это хороший вопрос, я ищу каноническую каноническую MUA; еще не все.