Mehrere Dateien aus demselben Verzeichnis an eine E-Mail-Nachricht anhängen?


8

F: Wie kann ich mit minimalem Aufwand mehrere Dateien an eine ausgehende E-Mail anhängen?

Ich verwende mu4e(was wiederverwendet message-mode, wenn das hilft), um mit E-Mails zu arbeiten. Ich muss oft E-Mails mit mehreren Anhängen senden. mu4everwendet mml-attach-file, um Anhänge zu behandeln.

So weit, ist es gut. Allerdings: Es ist eine unangenehme Aufgabe, mehrere Anhänge zu verwenden. mml-attach-filefordert für jede Datei erneut zur Eingabe auf, was zeitaufwändig ist, wenn die Datei tief in einem Teilbaum vergraben ist.

Es ist fast immer so, dass sich alle Dateien im selben Verzeichnis befinden, wenn ich sie anhängen muss. Wie kann ich in dieser Situation überzeugen mml-attach-file, einen Anhang im vorhandenen Nachrichtenpuffer zu erkennen, und, falls er einen findet, das Verzeichnis dieses Anhangs als Standard für die nächste Datei verwenden, die ich anhängen möchte?

NB: Wenn man sich in den Quellcode vertieft, mml-attach-fileverlässt man sich darauf mml-minibuffer-read-file, der wiederum entweder mml-default-directoryoder verwendet default-directory.

PS: Ich weiß, wie man mehrere Dateien anfügtmessage-mode , aber es gibt dort keine Antwort.


(1) Gefällt Ihnen die Idee, einen dired-modePuffer aus der E-Mail-Nachricht zu öffnen recursive-edit, die Dateien zu markieren dired-modeund zu beenden, recursive-editwährend Sie das Ergebnis von werfen dired-get-marked-files, das dann von a verwendet wird mapcar, um jede Datei auf einen Schlag anzuhängen? (2) Oder gefällt Ihnen die Idee dired-mode, mit dem Markieren Ihrer Dateien zu beginnen und dann eine E-Mail-Generierungsschaltfläche zu drücken, mit der die Nachricht erstellt und alle markierten Dateien mit dired-get-marked-filesund a mapcarangehängt werden, um die Liste herunterzulaufen und alle Dateien auf einen Schlag anzuhängen ?
Lawlist

@lawlist: Ich habe die dired-Version aus dem mu4e-Handbuch , aber ich suche nach einer Möglichkeit, dies zu tun, ohne dired durchzugehen.
Dan

Ich bin ein wenig überrascht zu sehen, dass "es keine Antwort gibt" als Argument für das Stellen einer doppelten Frage. Da Ihre Frage jedoch eine gültige Antwort fand, bin ich glücklich.
YoungFrog

Antworten:


9

Ich kann nur eine Lösung vorschlagen gnusund , diredaber es ist zumindest leichter als lawlist vorgeschlagen. Öffnen Sie das Verzeichnis diredmit C-x 4 dund geben Sie ein M-x turn-on-gnus-dired-mode. Markieren Sie dann die erforderlichen Dateien und geben Sie sie ein C-c RET C-a. Das war's und die Dateien können an einen bereits geöffneten oder einen neuen Nachrichtenpuffer angehängt werden (ich bin mir nicht sicher, ob dies auch für andere MUAs funktioniert)!


IIUC, das das OP nicht verwenden möchte dired, aber wenn Sie meine eigene Frage beantworten würden (unter emacs.stackexchange.com/questions/14514/… ), würde ich sie gerne dort annehmen.
YoungFrog

@YoungFrog: Er sollte sich so schnell wie möglich daran gewöhnen ;-) und danke für den Hinweis, beantwortete deine Frage.
Dieter.Wilhelm

@ Dieter.Wilhelm: Ich bin mit dired, will aber auch die spezifische Funktionalität habe ich in der Frage erwähnt. Ich werde die Frage etwas länger offen lassen, um zu sehen, ob jemand irgendwelche Ideen dazu hat.
Dan

3

Ich benutze dafür gerne Helm-Find-Dateien. Sie navigieren zu den Dateien, markieren die gewünschten mit C-spc und hängen sie mit Cc Ca an (oder drücken die Tabulatortaste und suchen die Dateien an E-Mail-Aktion anhängen).

Das Efeu-Äquivalent dazu ist die Counsel-Find-Datei. Fügen Sie zunächst diese Aktion hinzu:

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

In diesem Fall navigieren Sie zu den Dateien, geben CMo und dann a ein und fahren mit der nächsten Datei fort. Ich mag das nicht so sehr, als sie alle gleichzeitig im Ruder zu markieren, aber ich hänge nicht oft viele Dateien an.


2

Öffnen Sie einen GUI-Dateibrowser und ziehen Sie die Dateien in Ihr Emacs-Entwurfsfenster / Puffer


0

Alter Beitrag, aber ich bin mit dem gleichen Grundwunsch hierher gekommen und habe mein eigenes Snippet gerollt, um es zu lösen. Für andere, die hierher kommen, könnte dies etwas Passendes sein.

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

Dieser Code bedeutet, alle markierten "normalen" Dateien an einen neuen Nachrichtenpuffer anzuhängen, falls keine vorhanden sind, oder Anhänge an einen vorhandenen Nachrichtenpuffer hinzuzufügen. Funktioniert hier perfekt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.