6

一度にすべての添付ファイルをメールに保存したいと考えています。したがって、gnus-summary-save-parts-default-mime を ".* /.*" に設定しました。ただし、「X m」を使用すると、すべての添付ファイルを取得するだけでなく、「nnimap+my.name@googlemail.com/INBOX.2393.1」という名前のファイル (メールを読んでいるアカウントを参照) も取得します。私が受け取った電子メールの署名。この「タイプ」のファイルを「X m」に保存しないようにするにはどうすればよいですか? 言い換えれば: gnus-summary-save-parts-default-mime に正しい正規表現を指定して、このファイルも保存されないようにするにはどうすればよいでしょうか?

4

1 に答える 1

2

これ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)))

私はGnusv5.13を使用しています。同じまたは類似のバージョンも使用している場合は、この変更されたバージョンがgnus-summary-save-parts-1機能するかどうかをお知らせください。に設定gnus-summary-save-parts-exclude-articleする必要がありますt。うまくいったら、Gnusプロジェクトにパッチを提出します。

上記のコードを使用するか、defadvice 以下のコードを使用してください。ただし、両方を一緒に使用しないでください。defadviceは、今のところ使用できる簡単なクイックフィックスです。以下のコードは、Gnusプロジェクトへのパッチとして送信します。これは、Gnus v5.13も使用している場合に、システムで機能するかどうかをテストするためにここにのみ含めました。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)))))))
于 2011-12-07T14:13:50.170 に答える