anexar vários arquivos do mesmo diretório a uma mensagem de email?

8

P: como posso anexar vários arquivos a um email de saída com um mínimo de confusão?

Estou usando mu4e(que reutiliza message-mode, se isso ajudar) para trabalhar com email. Muitas vezes, preciso enviar e-mails com vários anexos. mu4eusa mml-attach-filepara manipular anexos.

Por enquanto, tudo bem. No entanto: é uma tarefa desagradável usar vários anexos. mml-attach-filesolicita um novo arquivo para cada arquivo, o que é demorado quando o arquivo é enterrado profundamente em uma subárvore.

É quase sempre o caso em que quando preciso anexar vários arquivos, eles estão todos no mesmo diretório. Nessa situação, como posso convencer mml-attach-filea detectar um anexo no buffer de mensagens existente e, se encontrar um, usar o diretório desse anexo como o padrão para o próximo arquivo que tento anexar?

NB: Se alguém digitar o código-fonte, mml-attach-filedepende mml-minibuffer-read-file, que por sua vez usa mml-default-directoryou default-directory.

PS: Estou ciente de como anexar vários arquivosmessage-mode , mas não há resposta lá.

Dan
fonte
(1) Você gosta da ideia de abrir um dired-modebuffer da mensagem de e-mail e recursive-edit, em seguida, marcar os arquivos dired-modee sair recursive-editenquanto lança o resultado dired-get-marked-files, que é então usado por a mapcarpara anexar cada arquivo de uma só vez? (2) Ou você gosta da ideia de começar dired-mode, marcar seus arquivos e pressionar um botão de geração de e-mail que cria a mensagem e anexa todos os arquivos marcados usando dired-get-marked-filese a mapcarpara percorrer a lista e anexar todos os arquivos de uma só vez ?
lawlist
@lawlist: Eu tenho a versão direcionada do manual do mu4e , mas estou procurando uma maneira de fazer isso sem passar pelo dired.
Dan
Estou um pouco surpreso ao ver "não há resposta" como argumento para fazer uma pergunta duplicada. No entanto, como sua pergunta atraiu uma resposta válida, acho que estou feliz.
YoungFrog

Respostas:

9

Eu só posso sugerir uma solução para gnuse dired, mas é, pelo menos, mais fácil como lawlist sugeriu. Abra o diretório diredcom C-x 4 de digite M-x turn-on-gnus-dired-mode. Em seguida, marque os arquivos necessários e digite C-c RET C-a. É isso e os arquivos podem ser anexados a um buffer de mensagem já aberto ou a um novo (não tenho certeza se isso também funciona para outros MUAs)!

Dieter.Wilhelm
fonte
O IIUC, o OP, não deseja usar dired, mas se você responder minha própria pergunta (em emacs.stackexchange.com/questions/14514/… ), ficaria muito feliz em aceitá-la lá.
YoungFrog
@YoungFrog: Ele deve se acostumar a dirigir o mais rápido possível ;-) e obrigado pela dica, respondeu sua pergunta.
precisa saber é o seguinte
@ Dieter.Wilhelm: Estou usando dired, mas também quero ter a funcionalidade específica que mencionei na pergunta. Deixarei a questão em aberto por mais algum tempo para ver se alguém tem alguma idéia.
Dan
3

Eu gosto de usar arquivos helm-find-files para isso. Você navega para onde estão os arquivos, marca os que deseja com o C-spc e os anexa com Cc Ca (ou pressione a tecla tab e encontre os arquivos anexados à ação de email).

O equivalente de hera disso é o conselho-encontrar-arquivo. Primeiro, adicione esta ação a ela:

(ivy-add-actions
 'counsel-find-file
 '(("a" (lambda (x)
      (unless (memq major-mode '(mu4e-compose-mode message-mode))
        (compose-mail)) 
      (mml-attach-file x)) "Attach to email")))

Nesse caso, navegue até os arquivos, digite CMo, em seguida, a e continue com o próximo arquivo. Eu não gosto disso tanto quanto marcá-los todos de uma vez no comando, mas não costumo anexar muitos arquivos.

John Kitchin
fonte
2

abra um navegador de arquivos da GUI e arraste os arquivos para a janela / buffer de rascunho do emacs

user3357659
fonte
0

Post antigo, mas cheguei aqui com o mesmo desejo básico e rolei meu próprio snippet para resolvê-lo. Para outros que vêm aqui, isso pode ser algo adequado.

(defun compose-attach-marked-files ()
  "Compose mail and attach all the marked files from a dired buffer."
  (interactive)
  (let ((files (dired-get-marked-files)))
    (compose-mail nil nil nil t)
    (dolist (file files)
          (if (file-regular-p file)
              (mml-attach-file file
                               (mm-default-file-encoding file)
                               nil "attachment")
            (message "skipping non-regular file %s" file)))))

Esse código significa anexar todos os arquivos "normais" direcionados marcados a um novo buffer de mensagens, se não houver nenhum, ou adicionar anexos a um buffer de mensagens existente. Funciona perfeito aqui.

Tompa
fonte