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á.


(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)!


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.


2

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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.