Server IP : 111.118.215.189 / Your IP : 18.117.158.174 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/gnus/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:21 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/nnmail.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\204 \302\301\303\304B\"\210\305\306!\210\305\307!\210\305\310!\210\305\311!\210\305\312!\210\305\313!\210\305\314!\210\315\316\317\"\210\315\320\317\"\210\321\322\323\324\325\306%\210\321\326\323\327\325\322%\210\321\330\323\331\325\322%\210\321\332\323\333\325\322%\210\321\334\323\335\325\322%\210\321\336\323\337\325\340\325\322&\210\321\341\323\342\325\322%\210\321\343\323\344\325\322%\210\321\345\323\346\325\322%\210\347\350\351\352\325\334\353\354&\210\347\355\356\357\325\334\353\360&\210\347\361\323\362\363\364\325\334\353\365& \210\347\366\323\367\363\364\325\334\353\370& \210\347\371\323\372\325\343\325\345\353\360& \210\347\373\323\374\325\336\353\360&\210\347\375\376\377\325\336\353\201@ &\210\347\201A \201B \201C \325\341\353\201D &\210\347\201E \323\201F \325\341\353\201G &\210\347\201H \201I \201J \363\201K \325\341\353\201L & \210\347\201M \323\201N \363\364\325\341\353\201O & \210\347\201P \323\201Q \325\322\353\360&\210\201R \201S \201T \201U #\210\347\201V \323\201W \325\343\353\360&\210\347\201X \323\201Y \363\201K \325\343\353\360& \210\347\201Z \201[ \201\\ \325\336\353\201] &\210\347\201^ \201_ \201` \325\336\353\201a &\210\347\201b \201c \201d \325\330\353\201e &\210\347\201f \323\201g \325\330\353\201e &\210\347\201h \323\201i \325\330\353\201e &\210\347\201j \323\201k \325\330\353\201e &\210\347\201l \323\201m \325\330\353\201n &\210\347\201o \323\201p \325\326\353\201e &\210\347\201q \323\201r \325\326\353\201e &\210\347\201s \323\201t \325\334\353\201e &\210\347\201u \323\201v \363\364\325\322\353\201e & \210\347\201w \201x \201y \325\345\353\201z &\210\201{ \201| \201} \201~ \201 \201\200 \201\201 \201\202 \201\203 \201\204 \201\205 \201\206 \201\207 \201\210 \201\211 \201\212 \201\213 \201\214 \201\215 \201\216 \201\217 \201\220 &\210\201{ \201\221 \201| \201\222 \201\223 \201\224 \353\201\225 &\210\347\201\221 \201\226 \201\227 \325\334\353\201\221 &\210\347\201\230 \201\231 \201\232 \325\334\353\201\233 &\210\347\201\234 \201\235 \201\236 \325\332\353\201\237 &\210\347\201\240 \201\241 \201\242 \325\332\325\336\353\201\243 & \210\347\201\244 \201\245 \201\246 \325\332\353\201\247 &\210\347\201\250 \201\251 \201\252 \363\201\253 \325\322\353\201\254 & \210\347\201\255 \201\256 \201\257 \363\201K \325\322\353\201@ & \210\347\201\260 \323\201\261 \363\364\325\322\353\201\262 & \210\347\201\263 \323\201\264 \363\364\325\322\353\360& \210\347\201\265 \323\201\266 \363\364\325\322\353\360& \210\347\201\267 \356\201\270 \363\364\325\322\353\360& \207" [fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require gnus nnheader message gnus-util mail-source mm-util gnus-int autoload gnus-add-buffer "gnus" gnus-kill-buffer custom-declare-group nnmail nil "Reading mail with Gnus." :group nnmail-retrieve "Retrieving new mail." nnmail-prepare "Preparing (or mangling) new mail after retrieval." nnmail-duplicate "Handling of duplicate mail messages." nnmail-split "Organizing the incoming mail in folders." nnmail-files "Mail files." gnus-files nnmail-expire "Expiring old mail." nnmail-procmail "Interfacing with procmail and other mail agents." nnmail-various "Various mail options." custom-declare-variable nnmail-split-methods '(("mail.misc" #1="")) "*Incoming mail will be split according to this variable.\n\nIf you'd like, for instance, one mail group for mail from the\n\"4ad-l\" mailing list, one group for junk mail and one for everything\nelse, you could do something like this:\n\n (setq nnmail-split-methods\n '((\"mail.4ad\" \"From:.*4ad\")\n (\"mail.junk\" \"From:.*Lars\\\\|Subject:.*buy\")\n (\"mail.misc\" \"\")))\n\nAs you can see, this variable is a list of lists, where the first\nelement in each \"rule\" is the name of the group (which, by the way,\ndoes not have to be called anything beginning with \"mail\",\n\"yonka.zow\" is a fine, fine name), and the second is a regexp that\nnnmail will try to match on the header to find a fit.\n\nThe second element can also be a function. In that case, it will be\ncalled narrowed to the headers with the first element of the rule as\nthe argument. It should return a non-nil value if it thinks that the\nmail belongs in that group.\n\nThe last element should always have \"\" as the regexp.\n\nThis variable can also have a function as its value, and it can\nalso have a fancy split method as its value. See\n`nnmail-split-fancy' for an explanation of that syntax." :type (choice (repeat :tag "Alist" (group (string :tag "Name") (choice regexp function))) (function-item nnmail-split-fancy) (function :tag "Other")) nnmail-crosspost t "If non-nil, do crossposting if several split methods match the mail.\nIf nil, the first match found will be used." boolean nnmail-split-fancy-with-parent-ignore-groups "Regexp that matches group names to be ignored when applying `nnmail-split-fancy-with-parent'.\nThis can also be a list of regexps." :version "22.1" (choice (const :tag "none" nil) (regexp :value ".*") (repeat :value (".*") regexp)) nnmail-cache-ignore-groups "Regexp that matches group names to be ignored when inserting message ids into the cache (`nnmail-cache-insert').\nThis can also be a list of regexps." (choice (const :tag "none" nil) (regexp :value ".*") (repeat :value (".*") regexp)) nnmail-keep-last-article "If non-nil, nnmail will never delete/move a group's last article.\nIt can be marked expirable, so it will be deleted when it is no longer last.\n\nYou may need to set this variable if other programs are putting\nnew mail into folder numbers that Gnus has marked as expired." nnmail-use-long-file-names "If non-nil the mail backends will use long file and directory names.\nIf nil, groups like \"mail.misc\" will end up in directories like\n\"mail/misc/\"." nnmail-default-file-modes 384 "Set the mode bits of all new mail files to this integer." integer nnmail-expiry-wait 7 "*Expirable articles that are older than this will be expired.\nThis variable can either be a number (which will be interpreted as a\nnumber of days) -- this doesn't have to be an integer. This variable\ncan also be `immediate' and `never'." (choice (const immediate) (number :tag "days") (const never)) nnmail-expiry-wait-function "Variable that holds function to specify how old articles should be before they are expired.\nThe function will be called with the name of the group that the expiry\nis to be performed in, and it should return an integer that says how\nmany days an article can be stored before it is considered \"old\".\nIt can also return the values `never' and `immediate'.\n\nE.g.:\n\n(setq nnmail-expiry-wait-function\n (lambda (newsgroup)\n (cond ((string-match \"private\" newsgroup) 31)\n ((string-match \"junk\" newsgroup) 1)\n ((string-match \"important\" newsgroup) 'never)\n (t 7))))" (choice (const :tag "nnmail-expiry-wait" nil) (function :format "%v" nnmail-)) nnmail-expiry-target 'delete "*Variable that says where expired messages should end up.\nThe default value is `delete' (which says to delete the messages),\nbut it can also be a string or a function. If it is a string, expired\nmessages end up in that group. If it is a function, the function is\ncalled in a buffer narrowed to the message in question. The function\nreceives one argument, the name of the group the message comes from.\nThe return value should be `delete' or a group name (a string)." "21.1" (choice (const delete) function string) nnmail-fancy-expiry-targets "Determine expiry target based on articles using fancy techniques.\n\nThis is a list of (\"HEADER\" \"REGEXP\" \"TARGET\") entries. If\n`nnmail-expiry-target' is set to the function\n`nnmail-fancy-expiry-target' and HEADER of the article matches REGEXP,\nthe message will be expired to a group determined by invoking\n`format-time-string' with TARGET used as the format string and the\ntime extracted from the articles' Date header (if missing the current\ntime is used).\n\nIn the special cases that HEADER is the symbol `to-from', the regexp\nwill try to match against both the From and the To header.\n\nExample:\n\n(setq nnmail-fancy-expiry-targets\n '((to-from \"boss\" \"nnfolder:Work\")\n (\"Subject\" \"IMPORTANT\" \"nnfolder:IMPORTANT.%Y.%b\")\n (\"from\" \".*\" \"nnfolder:Archive-%Y\")))\n\nIn this case, articles containing the string \"boss\" in the To or the\nFrom header will be expired to the group \"nnfolder:Work\";\narticles containing the string \"IMPORTANT\" in the Subject header will\nbe expired to the group \"nnfolder:IMPORTANT.YYYY.MMM\"; and\neverything else will be expired to \"nnfolder:Archive-YYYY\"." (repeat (list (choice :tag "Match against" (string :tag "Header") (const to-from)) regexp (string :tag "Target group format string"))) nnmail-cache-accepted-message-ids "If non-nil, put Message-IDs of Gcc'd articles into the duplicate cache.\nIf non-nil, also update the cache when copy or move articles." make-obsolete-variable nnmail-spool-file mail-sources "Gnus 5.9 (Emacs 22.1)" nnmail-resplit-incoming "*If non-nil, re-split incoming procmail sorted mail." nnmail-scan-directory-mail-source-once "*If non-nil, scan all incoming procmail sorted mails once.\nIt scans low-level sorted spools even when not required." nnmail-delete-file-function 'delete-file "Function called to delete files in some mail backends." function nnmail-crosspost-link-function (if (string-match "windows-nt" (symbol-name system-type)) 'copy-file 'add-name-to-file) "*Function called to create a copy of a file.\nThis is `add-name-to-file' by default, which means that crossposts\nwill use hard links. If your file system doesn't allow hard\nlinks, you could set this variable to `copy-file' instead." (radio (function-item add-name-to-file) (function-item copy-file) (function :tag "Other")) nnmail-read-incoming-hook (if (eq system-type 'windows-nt) '(nnheader-ms-strip-cr) nil) "*Hook that will be run after the incoming mail has been transferred.\nThe incoming mail is moved from the specified spool file (which normally is\nsomething like \"/usr/spool/mail/$user\") to the user's home\ndirectory. This hook is called after the incoming mail box has been\nemptied, and can be used to call any mail box programs you have\nrunning (\"xwatch\", etc.)\n\nE.g.:\n\n(add-hook 'nnmail-read-incoming-hook\n (lambda ()\n (call-process \"/local/bin/mailsend\" nil nil nil\n \"read\"\n ;; The incoming mail box file.\n (expand-file-name (user-login-name)\n rmail-spool-directory))))\n\nIf you have xwatch running, this will alert it that mail has been\nread.\n\nIf you use `display-time', you could use something like this:\n\n(add-hook 'nnmail-read-incoming-hook\n (lambda ()\n ;; Update the displayed time, since that will clear out\n ;; the flag that says you have mail.\n (when (eq (process-status \"display-time\") 'run)\n (display-time-filter display-time-process \"\"))))" hook nnmail-prepare-incoming-hook "Hook called before treating incoming mail.\nThe hook is run in a buffer with all the new, incoming mail." nnmail-prepare-incoming-header-hook "Hook called narrowed to the headers of each message.\nThis can be used to remove excessive spaces (and stuff like\nthat) from the headers before splitting and saving the messages." nnmail-prepare-incoming-message-hook "Hook called narrowed to each message." nnmail-list-identifiers "Regexp that matches list identifiers to be removed.\nThis can also be a list of regexps." (choice (const :tag "none" nil) (regexp :value ".*") (repeat :value (".*") regexp)) nnmail-pre-get-new-mail-hook "Hook called just before starting to handle new incoming mail." nnmail-post-get-new-mail-hook "Hook called just after finishing handling new incoming mail." nnmail-split-hook "Hook called before deciding where to split an article.\nThe functions in this hook are free to modify the buffer\ncontents in any way they choose -- the buffer contents are\ndiscarded after running the split process." nnmail-spool-hook "*A hook called when a new article is spooled." nnmail-large-newsgroup 50 "*The number of articles which indicates a large newsgroup or nil.\nIf the number of articles is greater than the value, verbose\nmessages will be shown to indicate the current status." (choice (const :tag "infinite" nil) (number :tag "count")) define-widget nnmail-lazy default "Base widget for recursive datastructures.\n\nThis is copy of the `lazy' widget in Emacs 22.1 provided for compatibility." :format "%{%t%}: %v" :convert-widget widget-value-convert-widget :value-create #[(widget) "\303\304\"\303\305\"\306\307\310\311 !\n#C#*\207" [widget type value widget-get :value :type widget-put :children widget-create-child-value widget-convert] 7] :value-delete widget-children-value-delete :value-get #[(widget) "\301\302\303\"@!\207" [widget widget-value widget-get :children] 4] :value-inline #[(widget) "\301\302\303\"@\304\"\207" [widget widget-apply widget-get :children :value-inline] 4] :default-get #[(widget) "\301\302\303\304\"!!\207" [widget widget-default-get widget-convert widget-get :type] 5] :match #[(widget value) "\302\303\304\305\"!\306 #\207" [widget value widget-apply widget-convert widget-get :type :match] 5] :validate #[(widget) "\301\302\303\"@\304\"\207" [widget widget-apply widget-get :children :validate] 4] nnmail-split-fancy "Widget for customizing splits in the variable of the same name." :tag "Split" (menu-choice :value (any ".*value.*" "misc") :tag "Type" (string :tag "Destination") (list :tag "Use first match (|)" :value (|) (const :format #1# |) (editable-list :inline t nnmail-split-fancy)) (list :tag "Use all matches (&)" :value (&) (const :format #1# &) (editable-list :inline t nnmail-split-fancy)) (list :tag "Function with fixed arguments (:)" :value (:) (const :format #1# :value :) function (editable-list :inline t (sexp :tag "Arg"))) (list :tag "Function with split arguments (!)" :value (!) (const :format #1# !) function (editable-list :inline t nnmail-split-fancy)) (list :tag "Field match" (choice :tag "Field" regexp symbol) (choice :tag "Match" regexp (symbol :value mail)) (repeat :inline t :tag "Restrictions" (group :inline t (const :format #1# -) regexp)) nnmail-split-fancy) (const :tag "Junk (delete mail)" junk)) "mail.misc" "Incoming mail can be split according to this fancy variable.\nTo enable this, set `nnmail-split-methods' to `nnmail-split-fancy'.\n\nThe format of this variable is SPLIT, where SPLIT can be one of\nthe following:\n\nGROUP: Mail will be stored in GROUP (a string).\n\n(FIELD VALUE [- RESTRICT [- RESTRICT [...]]] SPLIT): If the message\n field FIELD (a regexp) contains VALUE (a regexp), store the messages\n as specified by SPLIT. If RESTRICT (a regexp) matches some string\n after FIELD and before the end of the matched VALUE, return nil,\n otherwise process SPLIT. Multiple RESTRICTs add up, further\n restricting the possibility of processing SPLIT.\n\n(| SPLIT...): Process each SPLIT expression until one of them matches.\n A SPLIT expression is said to match if it will cause the mail\n message to be stored in one or more groups.\n\n(& SPLIT...): Process each SPLIT expression.\n\n(: FUNCTION optional args): Call FUNCTION with the optional args, in\n the buffer containing the message headers. The return value FUNCTION\n should be a split, which is then recursively processed.\n\n(! FUNCTION SPLIT): Call FUNCTION with the result of SPLIT. The\n return value FUNCTION should be a split, which is then recursively\n processed.\n\njunk: Mail will be deleted. Use with care! Do not submerge in water!\n Example:\n (setq nnmail-split-fancy\n '(| (\"Subject\" \"MAKE MONEY FAST\" junk)\n ...other.rules.omitted...))\n\nFIELD must match a complete field name. VALUE must match a complete\nword according to the `nnmail-split-fancy-syntax-table' syntax table.\nYou can use \".*\" in the regexps to match partial field names or words.\n\nFIELD and VALUE can also be Lisp symbols, in that case they are expanded\nas specified in `nnmail-split-abbrev-alist'.\n\nGROUP can contain \\& and \\N which will substitute from matching\n\\(\\) patterns in the previous VALUE.\n\nExample:\n\n(setq nnmail-split-methods 'nnmail-split-fancy\n nnmail-split-fancy\n ;; Messages from the mailer daemon are not crossposted to any of\n ;; the ordinary groups. Warnings are put in a separate group\n ;; from real errors.\n '(| (\"from\" mail (| (\"subject\" \"warn.*\" \"mail.warning\")\n \"mail.misc\"))\n ;; Non-error messages are crossposted to all relevant\n ;; groups, but we don't crosspost between the group for the\n ;; (ding) list and the group for other (ding) related mail.\n (& (| (any \"ding@ifi\\\\.uio\\\\.no\" \"ding.list\")\n (\"subject\" \"ding\" \"ding.misc\"))\n ;; Other mailing lists...\n (any \"procmail@informatik\\\\.rwth-aachen\\\\.de\" \"procmail.list\")\n (any \"SmartList@informatik\\\\.rwth-aachen\\\\.de\" \"SmartList.list\")\n ;; Both lists below have the same suffix, so prevent\n ;; cross-posting to mkpkg.list of messages posted only to\n ;; the bugs- list, but allow cross-posting when the\n ;; message was really cross-posted.\n (any \"bugs-mypackage@somewhere\" \"mypkg.bugs\")\n (any \"mypackage@somewhere\" - \"bugs-mypackage\" \"mypkg.list\")\n ;;\n ;; People...\n (any \"larsi@ifi\\\\.uio\\\\.no\" \"people.Lars Magne Ingebrigtsen\"))\n ;; Unmatched mail goes to the catch all group.\n \"misc.misc\"))" nnmail-split-abbrev-alist '((any . "from\\|to\\|cc\\|sender\\|apparently-to\\|resent-from\\|resent-to\\|resent-cc") (mail . "mailer-daemon\\|postmaster\\|uucp") (to . "to\\|cc\\|apparently-to\\|resent-to\\|resent-cc") (from . "from\\|sender\\|resent-from") (nato . "to\\|cc\\|resent-to\\|resent-cc") (naany . "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc")) "*Alist of abbreviations allowed in `nnmail-split-fancy'." (repeat (cons :format "%v" symbol regexp)) nnmail-message-id-cache-length 1000 "*The approximate number of Message-IDs nnmail will keep in its cache.\nIf this variable is nil, no checking on duplicate messages will be\nperformed." (choice (const :tag "disable" nil) (integer :format "%v")) nnmail-message-id-cache-file (nnheader-concat gnus-home-directory ".nnmail-cache") "The file name of the nnmail Message-ID cache." file nnmail-treat-duplicates 'warn "*If non-nil, nnmail keep a cache of Message-IDs to discover mail duplicates.\nThree values are valid: nil, which means that nnmail is not to keep a\nMessage-ID cache; `warn', which means that nnmail should insert extra\nheaders to warn the user about the duplication (this is the default);\nand `delete', which means that nnmail will delete duplicated mails.\n\nThis variable can also be a function. It will be called from a buffer\nnarrowed to the article in question with the Message-ID as a\nparameter. It should return nil, `warn' or `delete'." (choice (const :tag "off" nil) (const warn) (const delete)) nnmail-extra-headers '(To Newsgroups Cc) "Extra headers to parse.\nIn addition to the standard headers, these extra headers will be\nincluded in NOV headers (and the like) when backends parse headers." "24.3" (repeat symbol) nnmail-split-header-length-limit 2048 "Header lines longer than this limit are excluded from the split function." nnmail-mail-splitting-charset "Default charset to be used when splitting incoming mail." symbol nnmail-mail-splitting-decodes "Whether the nnmail splitting functionality should MIME decode headers." nnmail-split-fancy-match-partial-words "Whether to match partial words when fancy splitting.\nNormally, regexes given in `nnmail-split-fancy' are implicitly surrounded\nby \"\\=\\<...\\>\". If this variable is true, they are not implicitly surrounded\nby anything." nnmail-split-lowercase-expanded "Whether to lowercase expanded entries (i.e. \\N) when splitting mails.\nThis avoids the creation of multiple groups when users send to an address\nusing different case (i.e. mailing-list@domain vs Mailing-List@Domain)."] 22) #@47 The buffer used for splitting incoming mails. (defvar nnmail-article-buffer " *nnmail incoming*" (#$ . 20682)) #@80 List of group/article elements that say where the previous split put messages. (defvar nnmail-split-history nil (#$ . 20799)) #@44 Syntax table used by `nnmail-split-fancy'. (defvar nnmail-split-fancy-syntax-table (byte-code "\301 \302\303\304#\210)\207" [table make-syntax-table modify-syntax-entry 37 "."] 4) (#$ . 20931)) #@33 Hook called before saving mail. (defvar nnmail-prepare-save-mail-hook nil (#$ . 21134)) (defvar nnmail-split-tracing nil) (defvar nnmail-split-trace nil) (defvar nnmail-inhibit-default-split-group nil) (defalias 'nnmail-request-post #[(&optional server) "\300\301!\207" [mail-send-and-exit nil] 2]) #@31 Coding system used in nnmail. (defvar nnmail-file-coding-system 'raw-text (#$ . 21439)) #@37 Coding system used in reading inbox (defvar nnmail-incoming-coding-system mm-text-coding-system (#$ . 21533)) #@31 *Coding system for file name. (defvar nnmail-pathname-coding-system nil (#$ . -21649)) #@38 Insert FILE in server buffer safely. (defalias 'nnmail-find-file #[(file) "q\210ed|\210\303\211\303\304\305\217*\207" [nntp-server-buffer after-insert-file-functions format-alist nil (byte-code "\306 \307 !\210+\310\207" [nnmail-file-coding-system nnmail-pathname-coding-system file-name-coding-system auto-mode-alist coding-system-for-read file mm-auto-mode-alist insert-file-contents t] 3) ((file-error))] 3 (#$ . 21742)]) #@27 Make file name for GROUP. (defalias 'nnmail-group-pathname #[(group dir &optional file) "\306\307!!\310 \311\312\313\n\f#+\314\312#\315 !\306 \204( \316 P!\203/ \307 \"\202>