Сжать и отправить по электронной почте в правую кнопку мыши
Я использую Ubuntu 15.04 с файловым менеджером Nemo.
Как включить опцию щелчка правой кнопкой мыши, которая сжимает файлы в zip-архив и прикрепляет его к новому электронному письму в Thunderbird?
3 ответа
Для этого создайте скрипт (.nemo_action), здесь вы можете найти пример правильного синтаксиса.
Когда вы закончите свой скрипт, добавьте его в nemo-actions
чтобы сделать его доступным для правой кнопки мыши. Вы должны добавить его в $HOME/.local/share/nemo/actions/
Сценарий должен иметь .nemo_action
расширение
Теперь вам нужно сделать скрипт для сжатия и почты:
Добавьте необходимость в скрипт:
Для сжатия с помощью zip, например:
zip -r attach.zip attachFiles
Теперь прикрепите его к новому письму в Thunderbird:
thunderbird -compose "attachment='/path-to- attach.zip'"
Так что этот скрипт будет вызываться nemo_action
один
Несколько полезных ссылок:
Для этого вам понадобятся два сценария: сценарий действия Nemo и сценарий, который фактически выполнит эту работу: (Ну, на самом деле одного будет достаточно, но это будет раздражать из-за обслуживания)
Сценарий действия для щелчка правой кнопкой мыши должен перейти в очень конкретный каталог:
~/.local/share/nemo/actions/compress-and-mail.nemo_action:
Как это не расширяется ~
или же $HOME
, вам придется дать полный путь.
[Nemo Action]
Name=Compress and E-Mail
Comment=zip-compress files and send them with Thunderbird
Icon-Name=thunderbird
Exec=/home/saravanabawa/.local/nemo_mail_compress.sh %F
Selection=notnone
Extensions=any
EscapeSpaces=true
Другой сценарий будет сценарием bash для сжатия выбранных файлов, присоединения временного архива к новому сообщению и удаления его, как только Thunderbird закроется. Файл должен находиться в том месте, которое вы указали в Exec=
строка в предыдущем скрипте:
#!/usr/bin/env bash
ATT=$(mktemp /tmp/attachment.XXXXX.zip) #Generate temp file
rm $ATT #Remove temp file
zip -rj $ATT $@ #Compress files
thunderbird -compose "attachment='file://${ATT}'" #Attach zip to message
rm $ATT #Delete archive when done
Да, я сначала создаю временный файл, а затем снова его удаляю. Таким образом, имя файла генерируется, но zip
не жалуется на то, что файл не является zip-архивом.
Сценарий, который я создал, позволяет вам прикрепить несколько файлов и каталогов. Из-за некоторых ограничений возможно сжатие всего пути (архив будет принимать весь путь в качестве имени, в конечном итоге содержащий дерево каталогов из /
ко всем сжатым файлам) или пропустить все каталоги, т.е. все файлы будут на корневом уровне. Повторяющиеся имена файлов в разных каталогах приведут к тому, что программа не будет работать должным образом (я никогда не использую zip, я не знаю, как она будет реагировать). Если вы хотите первое поведение, удалите j
переключитесь с команды zip, иначе оставьте ее там.
PS: получатели могут быть подозрительными, если они получают электронное письмо с вложением attachment.JgHdI.zip
(имя, сгенерированное mktemp). Поэтому вы можете переименовать архив внутри Thunderbird.
Другой вариант - запросить имя архива, например, используя Zenity. Адаптированный скрипт может выглядеть так:
#!/usr/bin/env bash
ATT="/tmp/$(zenity ---entry --title='Enter file name' --text='Please name the attachment archive').zip"
zip -rj $ATT $@
thunderbird -compose "attachment='file://${ATT}'"
rm $ATT
Для Thunderbird в Ubuntu 16.10 для Nemo 3.20 я адаптировал это решение: http://www.badpenguin.org/nemo-action-send-to-email
- идти к
/usr/share/nemo/actions
- открыть как корень (в Nemo)
- скопировать пример скрипта
- переименовать в:
thunderbird.nemo_action
откройте его и вставьте следующий контент:
[Nemo Action] Name=Attach to Email Comment=Attach to Email Exec=thunderbird -compose to=,"attachment='%U'" Icon-Name=thunderbird Selection=notnone Extensions=nodirs; Separator=, EscapeSpaces=false
закрыть немо:
nemo -q
- щелкнув правой кнопкой мыши файл в Nemo, вы теперь найдете "Attach to Email" в меню!