gpt4 book ai didi

emacs - Gnus:如何一次保存*所有*附件?

转载 作者:行者123 更新时间:2023-12-02 15:51:25 27 4
gpt4 key购买 nike

我想一次性保存电子邮件的所有附件。因此,我将 gnus-summary-save-parts-default-mime 设置为“.*/.*”。但是,当使用“X m”时,我不仅获得所有附件,还获得一个名为“nnimap+my.name@googlemail.com/INBOX.2393.1”的文件(指我正在从中阅读电子邮件的帐户),其中包含我收到的电子邮件的签名。如何排除这种“类型”的文件保存在“X m”上?换句话说:如何为 gnus-summary-save-parts-default-mime 指定正确的正则表达式以防止保存此文件?

最佳答案

这个 defadvice 将通过排除任何没有文件名的部分来完成您目前想要的操作(在本例中,文章本身也是如此):

(defadvice gnus-summary-save-parts-1 (around gnus-summary-save-parts-exclude-self activate)
(let ((handle (ad-get-arg 2)))
(unless (and (not (stringp (car handle)))
(not (mm-handle-filename handle)))
ad-do-it)))

我使用的是 Gnus v5.13;如果您也使用相同或相似的版本,请告诉我此修改版本的 gnus-summary-save-parts-1 是否适合您;您需要将gnus-summary-save-parts-exclude-article设置为t。如果它适合您,我将向 Gnus 项目提交一个补丁。

请注意,可以使用上面的 defadvice OR 使用下面的代码,但不要同时使用两者。 defadvice 是一个简单的快速修复方法,您可以暂时使用。下面的代码我将作为 Gnus 项目的补丁提交,我在这里仅包含此代码供您测试,看看它是否适用于您的系统(如果您也使用 Gnus v5.13)。如果他们接受这个补丁并将其作为 future 版本的一部分,那么您将不需要上面的 defadvice ;相反,您只需自定义 gnus-summary-save-parts-exclude-article 变量即可。

(require 'gnus)
(require 'gnus-sum)

(defcustom gnus-summary-save-parts-exclude-article nil
"If non-nil don't save article along with attachments."
:group 'gnus-article-mime
:type 'boolean)

(defun gnus-summary-save-parts-1 (type dir handle reverse)
(if (stringp (car handle))
(mapcar (lambda (h) (gnus-summary-save-parts-1 type dir h reverse))
(cdr handle))
(when (if reverse
(not (string-match type (mm-handle-media-type handle)))
(string-match type (mm-handle-media-type handle)))
(let* ((name (or
(mm-handle-filename handle)
(unless gnus-summary-save-parts-exclude-article
(format "%s.%d.%d" gnus-newsgroup-name
(cdr gnus-article-current)
gnus-summary-save-parts-counter))))
(file (when name
(expand-file-name
(gnus-map-function
mm-file-name-rewrite-functions
(file-name-nondirectory
name))
dir))))
(when file
(incf gnus-summary-save-parts-counter)
(unless (file-exists-p file)
(mm-save-part-to-file handle file)))))))

关于emacs - Gnus:如何一次保存*所有*附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com