Emacs Message:保存已发送的邮件

你如何让 Emacs Message (C-x m) 保存外发邮件?

有没有一种通用的方法可以做到这一点?

您可能会 C-x C-s 但这是低效且容易忘记的,此外,您不能 100% 是真正发送的邮件:您可能在最后一刻进行了一些修改,但后来忘记了。

这个(save-buffer)可以从“发送消息”钩子中调用并自动化吗? (如 text-mode-hook。)如果是这样,什么钩子? (你如何获得模式的钩子?)

BCC 对自己说:不是很优雅吗?

FCC:似乎是最好的服务,仍然必须是自动化的,调用和生成一个优秀的文档名称。

3
2022-06-07 14:41:00
资源 分享
答案: 3

我使用更复杂的补救措施:

(defconst my-safe-filename-char-regex "[[:alnum:][email protected]]"
  "Safe file names.")

(defun my-clean-filename (filename)
  (mapconcat
   (lambda (ch) (or (when (string-match my-safe-filename-char-regex (char-to-string ch)) (char-to-string ch)) "-"))
   filename "") )

(defun my-message-save ()
  "Store message in `gnus-article-save-directory' after
successful sending. It is possible that mail rejected and I lost
it completely, this func save it for me."
  (unless (eq major-mode 'message-mode)
    (error "Attempt to call my-message-save in non message-mode buffer"))
  (make-directory gnus-article-save-directory t)
  (let ( (buf (current-buffer))
         (field-to (my-clean-filename (or (message-fetch-field "Newsgroups") (message-fetch-field "To"))))
         (field-subject (my-clean-filename (message-fetch-field "Subject")))
         file )
    (setq file (concat gnus-article-save-directory "/" (format-time-string "%F_%T") "_" field-to "_" field-subject))
    (with-temp-file file
      (insert-buffer buf)
      )) )
(add-hook 'message-sent-hook 'my-message-save)

还要记住,我利用消息 - 发送 - 钩子而不是消息 - 发送 - 钩子 .

2
2022-06-07 20:49:06
资源

刚刚让这个工作。 放置在 .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
2022-06-07 15:12:08
资源

对于要归档的任何组,您可以将变量 gcc-self 设置为 T

请参阅其文档 这里。 (或 (gnus) Group Parameters

编辑:gcc-self 不是“永恒”变量,您必须通过 gnus-parameter 设置它。

(setq gnus-parameters
      '((".*"
         (gcc-self . t))))
2
2022-06-07 15:06:42
资源