Emacs Message:儲存已傳送的郵件

Emacs Message:儲存已傳送的郵件

如何讓 Emacs Message ( C-x m) 保存發出的郵件?

有沒有標準的方法來做到這一點?

你可以,C-x C-s但是這樣效率低下並且容易忘記,此外,你不能 100% 是實際發送的郵件:你可能在最後一刻做了一些更改,但後來你忘記了。

這個 ( save-buffer) 可以從「發送訊息」掛鉤呼叫並自動化嗎? (比如text-mode-hook。)如果是這樣,什麼鉤子? (如何獲得模式的鉤子?)

BCC對自己說:不是很優雅嗎?

FCC:似乎是最好的解決方案,但仍然必須自動化,調用和產生一個好的檔案名稱。

答案1

剛開始工作。普丁.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)

答案2

您可以為要存檔的任何群組gcc-self設定該變數。T

查看它的文檔 這裡。 (或(gnus) Group Parameters

編輯: gcc-self不是一個「經典」變量,你必須透過設定它 gnus-parameter

(setq gnus-parameters
      '((".*"
         (gcc-self . t))))

答案3

我使用更複雜的解決方案:

(defconst my-safe-filename-char-regex "[[:alnum:]-_!.@]"
  “安全檔名。”)

(defun my-clean-filename (檔名)
  (地圖連接
   (lambda (ch) (或 (when (string-match my-safe-filename-char-regex (char-to-string ch)) (char-to-string ch)) "-"))
   檔案名稱 ””) )

(defun 我的訊息保存 ()
  「之後將訊息儲存在『gnus-article-save-directory』中
發送成功。有可能郵件被拒絕而我遺失了
完全可以,這個功能幫我保存一下。
  (除非(eq主要模式'訊息模式)
    (錯誤“嘗試在非訊息模式緩衝區中調用我的消息保存”))
  (make-directory gnus-article-save-directory t)
  (let ( (buf (目前緩衝區))
         (field-to (my-clean-filename (或 (message-fetch-field "新聞群組") (message-fetch-field "To"))))
         (欄位主題(我的乾淨檔案名稱(訊息取得欄位「主題」)))
         文件 )
    (setq file (concat gnus-article-save-directory "/" (format-time-string "%F_%T") "_" field-to "_" field-subject))
    (帶有臨時文件的文件
      (插入緩衝區 buf)
      ))))
(添加鉤子“訊息發送鉤子”我的消息保存)

另請注意,我使用訊息發送鉤子代替訊息發送鉤子

相關內容