adjuntar múltiples archivos del mismo directorio a un mensaje de correo electrónico?

8

P: ¿cómo puedo adjuntar varios archivos a un correo electrónico saliente con un mínimo de alboroto?

Estoy usando mu4e(que reutiliza message-mode, si eso ayuda) para trabajar con el correo electrónico. A menudo necesito enviar correos electrónicos con múltiples archivos adjuntos. mu4eutiliza mml-attach-filepara manejar archivos adjuntos.

Hasta aquí todo bien. Sin embargo: es una tarea desagradable usar múltiples archivos adjuntos. mml-attach-filesolicita cada archivo de nuevo, lo que lleva mucho tiempo cuando el archivo está enterrado en un subárbol.

Casi siempre ocurre que, cuando necesito adjuntar varios archivos, todos están en el mismo directorio. En esta situación, ¿cómo puedo convencer mml-attach-filepara detectar un archivo adjunto en el búfer de mensajes existente y, si encuentra uno, usar el directorio de ese archivo adjunto como predeterminado para el siguiente archivo que intento adjuntar?

NB: si se cava en el código fuente, se mml-attach-filebasa mml-minibuffer-read-file, que a su vez usa mml-default-directoryo default-directory.

PD: Soy consciente de cómo adjuntar múltiples archivosmessage-mode , pero no hay respuesta allí.

Dan
fuente
(1) ¿Le gusta la idea de abrir un dired-modebúfer del mensaje de correo electrónico recursive-edit, luego marcar los archivos dired-modey salir recursive-editmientras arroja el resultado de dired-get-marked-files, que luego es utilizado por a mapcarpara adjuntar cada archivo de una sola vez? (2) O, ¿le gusta la idea de comenzar dired-mode, marcar sus archivos y luego presionar un botón de generación de correo electrónico que crea el mensaje y adjunta todos los archivos marcados usando dired-get-marked-filesy a mapcarpara recorrer la lista y adjuntar todos los archivos de una sola vez ?
leyes
@lawlist: Tengo la versión dired del manual de mu4e , pero estoy buscando una manera de hacerlo sin pasar por dired.
Dan
Me sorprende un poco ver que "no hay respuesta" como argumento para hacer una pregunta duplicada. Sin embargo, dado que su pregunta atrajo una respuesta válida, creo que estoy feliz.
YoungFrog

Respuestas:

9

Solo puedo sugerir una solución para gnusy, diredpero al menos es más fácil como lo sugiere la lista de leyes . Abra el directorio diredcon C-x 4 dy escriba M-x turn-on-gnus-dired-mode. Luego marque los archivos requeridos y escriba C-c RET C-a. ¡Eso es todo y los archivos se pueden adjuntar a un búfer de mensajes ya abierto o nuevo (no estoy seguro si esto también funciona para otros MUA)!

Dieter.Wilhelm
fuente
IIUC el OP no quiere usar dired, pero si contestara mi propia pregunta (en emacs.stackexchange.com/questions/14514/… ) estaría muy feliz de aceptarla allí.
YoungFrog
@YoungFrog: Debería acostumbrarse a dirigir lo antes posible ;-) y gracias por la pista, respondió su pregunta.
Dieter.Wilhelm
@ Dieter.Wilhelm: Estoy usando dired, pero también quiero tener la funcionalidad específica que mencioné en la pregunta. Dejaré la pregunta abierta un poco más para ver si alguien tiene alguna idea al respecto.
Dan
3

Me gusta usar helm-find-files para esto. Navega hasta donde están los archivos, marca los que deseas con C-spc y adjúntalos con Cc Ca (o presiona tab y encuentra los archivos adjuntos a la acción de correo electrónico).

El equivalente de hiedra de esto es el consejo-encontrar-archivo. Primero, agregue esta acción:

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

En este caso, navega a los archivos, escribe CMo y luego a, y continúa con el siguiente archivo. No me gusta tanto como marcarlos todos a la vez en el timón, pero a menudo no adjunto muchos archivos.

John Kitchin
fuente
2

abra un navegador de archivos GUI y arrastre los archivos a su ventana de borrador / buffer de emacs

usuario3357659
fuente
0

Publicación anterior, pero llegué aquí con el mismo deseo básico y rodé mi propio fragmento para resolverlo. Para otros que vienen aquí, esto podría ser algo adecuado.

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

Este código significa adjuntar todos los archivos dired "normales" marcados a un nuevo búfer de mensajes si no existe ninguno o agregar archivos adjuntos a un búfer de mensajes existente. Funciona perfecto aquí.

Tompa
fuente