首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gnus:如何一次保存*所有*附件?

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

Stack Overflow用户
提问于 2011-12-03 06:12:20
回答 1查看 1.7K关注 0票数 6

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-07 22:13:50

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

代码语言:javascript
复制
(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)))

我使用的是Gnusv5.13;如果您也使用相同或相似的版本,请让我知道这个修改后的gnus-summary-save-parts-1版本是否适用于您;您会希望将gnus-summary-save-parts-exclude-article设置为t。如果它对你有效,我会向Gnus项目提交一个补丁。

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

代码语言:javascript
复制
(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)))))))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8363339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档