Как я могу отправить вложение в приложении из командной строки

Можно ли отправлять вложения по электронной почте из командной строки?

Если возможно, я бы хотел что-то простое:

25
задан 10 October 2010 в 05:19

7 ответов

Из всех почтовых агентов в репозитории Ubuntu, по-видимому, mutt является MUA командной строки, наделенным долгосрочной поддержкой.

Согласно руководству , вы можете сделать что-то в точности как:

mutt -a myfile.txt -s "Here's my file" -- me@example.com

, за исключением того, что оно никуда не денется, так как также требуется агент пересылки почты. Популярные из них:

  • почтенный sendmail
  • postfix
  • exim4
  • qmail
  • nullmailer

и единственные, которые, похоже, поддерживает Canonical, это postfix (спасибо за исправление Steve) и exim4 .

Можно также сказать, что xdg-email также является надлежащим MUA Ubuntu, но это простой интерфейс, который выполняет предпочитаемый вами MUA на вашем имя.

Если вам нужен совет, какой MTA может подойти для вашего использования, возможно, откройте еще один вопрос здесь.

0
ответ дан 10 October 2010 в 05:19

Возможно, вы захотите отправить файл из оболочки , но в противном случае используйте Thunderbird .

В этом случае полезно использовать команду 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)')"

Кроме того, команда - long. Используйте сценарий оболочки или функцию оболочки с четырьмя аргументами:

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» «1124] с вложением и заполненными полями From, To, Subject и body. Его можно отредактировать перед отправкой .

0
ответ дан 10 October 2010 в 05:19

У меня тоже были проблемы с отправкой файлов вложений. Когда я отправил электронное письмо без вложения, оно прошло успешно, но не было вложения. Эта проблема существовала с командами sendemail, mutt, mail, mailx, uuencode.

1116 К счастью, это было решено забавно. Я использую 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».

Обновление: 201808

Кажется, что опция -a была изменена с Прописными -A для вложения сейчас. Кажется, что -a предназначен для изменения заголовка в соответствии с doc

0
ответ дан 10 October 2010 в 05:19

Я хочу добавить другой ответ, который используется для добавления основного текста вместе с приложением Ура !!

echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
0
ответ дан 10 October 2010 в 05:19
Пакет

heirloom-mailx в debian предоставляет команду mailx для простой отправки mime-вложений. следующие работы для меня;

 mailx -a attachment.zip -s subject rctp@domain.to
0
ответ дан 10 October 2010 в 05:19

Я обнаружил, что команда и параметры были недавно изменены.

Если вы хотите отправить вложения с помощью этой команды:

mail -s "your subject" you@gmail.com -A /your/attachment/absolute/path < /home/you/message.txt

Опция attachment должна быть -A, которая ЗАГЛАВНА A.

0
ответ дан 10 October 2010 в 05:19

Моя версия почта, почта BSD, кажется, не поддерживает вложения (это нигде не упоминается на странице руководства).

Хитрый обходной путь — отправить вложение в виде потока с кодировкой uuencoded. Gmail интерпретирует это как два вложения, одно из которых называется «noname» и представляет собой закодированный текст, а другое — «-», которое содержит декодированную версию, которую можно открыть любой программой, которая распознает тип файла по его двоичным данным. Я не знаю, задокументировано ли это поведение или применимо к любому другому почтовому клиенту, но если вы не хотите ничего устанавливать, это быстрый хак.

uuencode image.jpg - |  mail -s "Subject line" user@example.net 
0
ответ дан 14 November 2020 в 08:48

Другие вопросы по тегам:

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