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)
      ))))
(添加钩子“消息发送钩子”我的消息保存)

另请注意,我使用消息发送钩子代替消息发送钩子

相关内容