Wie bringt man Emacs Message ( C-x m
) dazu, ausgehende E-Mails zu speichern?
Gibt es hierfür eine Standardmethode?
Sie könnten C-x C-s
das tun, aber das ist ineffizient und man vergisst es leicht. Außerdem können Sie nicht hundertprozentig sicher sein, dass die E-Mail auch wirklich gesendet wurde. Möglicherweise haben Sie in letzter Minute noch Änderungen vorgenommen, die Sie später vergessen haben.
Könnte dies ( save-buffer
) von einem „Nachricht senden“-Hook aufgerufen und automatisiert werden? (Wie text-mode-hook
.) Wenn ja, welcher Hook? (Wie erhält man die Hooks eines Modus?)
BCC
zu sich selbst: nicht sehr elegant?
FCC
: scheint die beste Lösung zu sein, muss aber dennoch automatisiert werden, sowohl der Aufruf als auch die Generierung eines guten Dateinamens.
Antwort1
Ich habe es gerade zum Laufen gebracht. Geben Sie ein .emacs
:
(defun save-sent-mail ()
(write-file (format-time-string "~/Mail/sent/%Y-%m-%d_%T") nil) )
(add-hook 'message-send-hook 'save-sent-mail)
Antwort2
Sie können die Variable für alle Gruppen festlegen, gcc-self
die T
Sie archivieren möchten.
Siehe die Dokumentation
Hier. (oder (gnus) Group Parameters
)
EDIT:
gcc-self
ist keine „klassische“ Variable, Sie müssen sie über festlegen
gnus-parameter
.
(setq gnus-parameters
'((".*"
(gcc-self . t))))
Antwort3
Ich verwende eine kompliziertere Lösung:
(defconst mein-sicherer-Dateiname-char-regex "[[:alnum:]-_!.@]" "Sichere Dateinamen.") (defun my-clean-filename (Dateiname) (Karteconcat (Lambda (ch) (oder (wenn (String-Match My-Safe-Filename-Char-Regex (Char-to-String ch)) (Char-to-String ch)) "-")) Dateiname "") ) (defun meine-Nachricht-speichern () "Nachricht in `gnus-article-save-directory' speichern nach erfolgreiches Senden. Es ist möglich, dass E-Mail abgelehnt und ich verloren es vollständig, diese Funktion speichert es für mich." (es sei denn (eq Hauptmodus 'Nachrichtenmodus) (Fehler „Versuch, my-message-save in einem Puffer aufzurufen, der sich nicht im Nachrichtenmodus befindet“) (Verzeichnis erstellen Gnus-Artikel-Verzeichnis speichern t) (let ( (buf (aktueller Puffer)) (Feld an (mein sauberer Dateiname (oder (Nachrichtenabruffeld "Newsgroups") (Nachrichtenabruffeld "An")))) (Feld-Betreff (mein-sauberer-Dateiname (Nachrichtenabruf-Feld "Betreff"))) Datei ) (setq-Datei (concat gnus-article-save-directory "/" (format-time-string "%F_%T") "_" Feld-zu "_" Feld-Betreff)) (mit temporärer Dateidatei (Einfügepuffer Puffer) )) ) (Hook hinzufügen 'Nachricht gesendet', Hook 'Meine Nachricht speichern)
Beachten Sie auch, dass ichNachricht-gesendet-HookanstattNachrichten-Sende-Hook.