comparison lisp/mail/feedmail.el @ 73728:d8a07f1f5442

(feedmail-queue-reminder, feedmail-queue-reminder-alist, feedmail-confirm-outgoing, feedmail-confirm-outgoing-timeout, feedmail-nuke-bcc, feedmail-nuke-resent-bcc, feedmail-fill-to-cc-fill-column, feedmail-sender-line, feedmail-force-binary-write, feedmail-from-line, feedmail-deduce-envelope-from, feedmail-x-mailer-line, feedmail-message-id-generator, feedmail-date-generator, feedmail-fiddle-plex-user-list, feedmail-enable-spray, feedmail-spray-this-address, feedmail-spray-address-fiddle-plex-list, feedmail-enable-queue, feedmail-queue-runner-confirm-global, feedmail-ask-before-queue-prompt, feedmail-ask-before-queue-reprompt, feedmail-prompt-before-queue-standard-alist, feedmail-prompt-before-queue-user-alist, feedmail-prompt-before-queue-help-supplement, feedmail-queue-use-send-time-for-message-id, feedmail-queue-default-file-slug, feedmail-queue-fqm-suffix, feedmail-mail-send-hook-splitter, feedmail-mail-send-hook, feedmail-mail-send-hook-queued, feedmail-confirm-addresses-hook-example, feedmail-last-chance-hook, feedmail-before-fcc-hook, feedmail-queue-runner-mode-setter, feedmail-queue-alternative-mail-header-separator, feedmail-queue-runner-message-sender, feedmail-buffer-eating-function, feedmail-binmail-template, feedmail-run-the-queue-no-prompts, feedmail-run-the-queue-global-prompt, feedmail-queue-subject-slug-maker, feedmail-fiddle-header, feedmail-envelope-deducer, feedmail-fiddle-date, feedmail-default-message-id-generator, feedmail-fiddle-message-id, feedmail-fiddle-x-mailer, feedmail-fiddle-spray-address, feedmail-deduce-address-list): Fix typos in docstrings.
author Juanma Barranquero <lekktu@gmail.com>
date Mon, 06 Nov 2006 02:17:08 +0000
parents e4183d5068ec
children 49ec84aacf0b 02cf29720f31
comparison
equal deleted inserted replaced
73727:9105f834eb17 73728:d8a07f1f5442
328 "*If non-nil, give a y-or-n confirmation prompt before sending mail. 328 "*If non-nil, give a y-or-n confirmation prompt before sending mail.
329 This is done after the message is completely prepped, and you'll be 329 This is done after the message is completely prepped, and you'll be
330 looking at the top of the message in a buffer when you get the prompt. 330 looking at the top of the message in a buffer when you get the prompt.
331 If set to the symbol 'queued, give the confirmation prompt only while 331 If set to the symbol 'queued, give the confirmation prompt only while
332 running the queue (however, the prompt is always suppressed if you are 332 running the queue (however, the prompt is always suppressed if you are
333 processing the queue via feedmail-run-the-queue-no-prompts). If set 333 processing the queue via `feedmail-run-the-queue-no-prompts'). If set
334 to the symbol 'immediate, give the confirmation prompt only when 334 to the symbol 'immediate, give the confirmation prompt only when
335 sending immediately. For any other non-nil value, prompt in both 335 sending immediately. For any other non-nil value, prompt in both
336 cases. You can give a timeout for the prompt; see variable 336 cases. You can give a timeout for the prompt; see variable
337 feedmail-confirm-outgoing-timeout." 337 `feedmail-confirm-outgoing-timeout'."
338 :group 'feedmail-misc 338 :group 'feedmail-misc
339 :type 'boolean 339 :type 'boolean
340 ) 340 )
341 341
342 342
343 (defcustom feedmail-confirm-outgoing-timeout nil 343 (defcustom feedmail-confirm-outgoing-timeout nil
344 "*If non-nil, a timeout in seconds at the send confirmation prompt. 344 "*If non-nil, a timeout in seconds at the send confirmation prompt.
345 If a positive number, it's a timeout before sending. If a negative 345 If a positive number, it's a timeout before sending. If a negative
346 number, it's a timeout before not sending. This will not work if your 346 number, it's a timeout before not sending. This will not work if your
347 version of Emacs doesn't include the function y-or-n-p-with-timeout 347 version of Emacs doesn't include the function `y-or-n-p-with-timeout'
348 \(e.g., some versions of XEmacs\)." 348 \(e.g., some versions of XEmacs\)."
349 :group 'feedmail-misc 349 :group 'feedmail-misc
350 :type '(choice (const nil) integer) 350 :type '(choice (const nil) integer)
351 ) 351 )
352 352
353 353
354 (defcustom feedmail-nuke-bcc t 354 (defcustom feedmail-nuke-bcc t
355 "*If non-nil remove Bcc: lines from the message headers. 355 "*If non-nil remove Bcc: lines from the message headers.
356 In any case, the Bcc: lines do participate in the composed address 356 In any case, the Bcc: lines do participate in the composed address
357 list. You may want to leave them in if you're using sendmail 357 list. You may want to leave them in if you're using sendmail
358 \(see feedmail-buffer-eating-function\)." 358 \(see `feedmail-buffer-eating-function'\)."
359 :group 'feedmail-headers 359 :group 'feedmail-headers
360 :type 'boolean 360 :type 'boolean
361 ) 361 )
362 362
363 363
364 (defcustom feedmail-nuke-resent-bcc t 364 (defcustom feedmail-nuke-resent-bcc t
365 "*If non-nil remove Resent-Bcc: lines from the message headers. 365 "*If non-nil remove Resent-Bcc: lines from the message headers.
366 In any case, the Resent-Bcc: lines do participate in the composed 366 In any case, the Resent-Bcc: lines do participate in the composed
367 address list. You may want to leave them in if you're using sendmail 367 address list. You may want to leave them in if you're using sendmail
368 \(see feedmail-buffer-eating-function\)." 368 \(see `feedmail-buffer-eating-function'\)."
369 :group 'feedmail-headers 369 :group 'feedmail-headers
370 :type 'boolean 370 :type 'boolean
371 ) 371 )
372 372
373 373
408 :type 'boolean 408 :type 'boolean
409 ) 409 )
410 410
411 411
412 (defcustom feedmail-fill-to-cc-fill-column default-fill-column 412 (defcustom feedmail-fill-to-cc-fill-column default-fill-column
413 "*Fill column used by feedmail-fill-to-cc." 413 "*Fill column used by `feedmail-fill-to-cc'."
414 :group 'feedmail-headers 414 :group 'feedmail-headers
415 :type 'integer 415 :type 'integer
416 ) 416 )
417 417
418 418
479 returns either nil, t, a string, or a fiddle-plex (or, in fact, 479 returns either nil, t, a string, or a fiddle-plex (or, in fact,
480 another function, but let's not be ridiculous). If a string, it 480 another function, but let's not be ridiculous). If a string, it
481 should be just the contents of the header, not the name of the header 481 should be just the contents of the header, not the name of the header
482 itself nor the trailing newline. If a function, it will be called 482 itself nor the trailing newline. If a function, it will be called
483 with no arguments. For an explanation of fiddle-plexes, see the 483 with no arguments. For an explanation of fiddle-plexes, see the
484 documentation for the variable feedmail-fiddle-plex-blurb. In all 484 documentation for the variable `feedmail-fiddle-plex-blurb'. In all
485 cases the name element of the fiddle-plex is ignored and is hardwired 485 cases the name element of the fiddle-plex is ignored and is hardwired
486 by feedmail to either \"X-Sender\" or \"X-Resent-Sender\". 486 by feedmail to either \"X-Sender\" or \"X-Resent-Sender\".
487 487
488 You can probably leave this nil, but if you feel like using it, a good 488 You can probably leave this nil, but if you feel like using it, a good
489 value would be a string of a fully-qualified domain name form of your 489 value would be a string of a fully-qualified domain name form of your
496 496
497 (defcustom feedmail-force-binary-write t 497 (defcustom feedmail-force-binary-write t
498 "*If non-nil, force writing file as binary (this applies to queues and Fcc:). 498 "*If non-nil, force writing file as binary (this applies to queues and Fcc:).
499 On systems where there is a difference between binary and text files, 499 On systems where there is a difference between binary and text files,
500 feedmail will temporarily manipulate the values of `buffer-file-type' 500 feedmail will temporarily manipulate the values of `buffer-file-type'
501 and/or default-buffer-file-type to make the writing as binary. If 501 and/or `default-buffer-file-type' to make the writing as binary. If
502 nil, writing will be in text mode. On systems where there is no 502 nil, writing will be in text mode. On systems where there is no
503 distinction or where it is controlled by other variables or other 503 distinction or where it is controlled by other variables or other
504 means, this option has no effect." 504 means, this option has no effect."
505 :group 'feedmail-misc 505 :group 'feedmail-misc
506 :type 'boolean 506 :type 'boolean
519 which returns either nil, t, a string, or a fiddle-plex (or, in fact, 519 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
520 another function, but let's not be ridiculous). If a string, it 520 another function, but let's not be ridiculous). If a string, it
521 should be just the contents of the header, not the name of the header 521 should be just the contents of the header, not the name of the header
522 itself nor the trailing newline. If a function, it will be called 522 itself nor the trailing newline. If a function, it will be called
523 with no arguments. For an explanation of fiddle-plexes, see the 523 with no arguments. For an explanation of fiddle-plexes, see the
524 documentation for the variable feedmail-fiddle-plex-blurb. In all 524 documentation for the variable `feedmail-fiddle-plex-blurb'. In all
525 cases the name element of the fiddle-plex is ignored and is hardwired 525 cases the name element of the fiddle-plex is ignored and is hardwired
526 by feedmail to either \"X-From\" or \"X-Resent-From\". 526 by feedmail to either \"X-From\" or \"X-Resent-From\".
527 527
528 A good value would be a string fully-qualified domain name form of 528 A good value would be a string fully-qualified domain name form of
529 your address. For example, \"bill@bubblegum.net (WJCarpenter)\". The 529 your address. For example, \"bill@bubblegum.net (WJCarpenter)\". The
542 In other words, if there is a Sender: header in the message, temporarily 542 In other words, if there is a Sender: header in the message, temporarily
543 change the value of `user-mail-address' to be the same while the message 543 change the value of `user-mail-address' to be the same while the message
544 is being sent. If there is no Sender: header, use the From: header, 544 is being sent. If there is no Sender: header, use the From: header,
545 if any. Address values are taken from the actual message just before 545 if any. Address values are taken from the actual message just before
546 it is sent, and the process is independent of the values of 546 it is sent, and the process is independent of the values of
547 feedmail-from-line and/or feedmail-sender-line. 547 `feedmail-from-line' and/or `feedmail-sender-line'.
548 548
549 There are many and good reasons for having the message header 549 There are many and good reasons for having the message header
550 From:/Sender: be different from the message envelope \"from\" 550 From:/Sender: be different from the message envelope \"from\"
551 information. However, for most people and for most circumstances, it 551 information. However, for most people and for most circumstances, it
552 is usual for them to be the same (this is probably especially true for 552 is usual for them to be the same (this is probably especially true for
593 which returns either nil, t, a string, or a fiddle-plex (or, in fact, 593 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
594 another function, but let's not be ridiculous). If a string, it 594 another function, but let's not be ridiculous). If a string, it
595 should be just the contents of the header, not the name of the header 595 should be just the contents of the header, not the name of the header
596 itself nor the trailing newline. If a function, it will be called 596 itself nor the trailing newline. If a function, it will be called
597 with no arguments. For an explanation of fiddle-plexes, see the 597 with no arguments. For an explanation of fiddle-plexes, see the
598 documentation for the variable feedmail-fiddle-plex-blurb. In all 598 documentation for the variable `feedmail-fiddle-plex-blurb'. In all
599 cases the name element of the fiddle-plex is ignored and is hardwired 599 cases the name element of the fiddle-plex is ignored and is hardwired
600 by feedmail to either \"X-Mailer\" or \"X-Resent-Mailer\"." 600 by feedmail to either \"X-Mailer\" or \"X-Resent-Mailer\"."
601 :group 'feedmail-headers 601 :group 'feedmail-headers
602 :type '(choice (const t) (const nil) string function) 602 :type '(choice (const t) (const nil) string function)
603 ) 603 )
617 another function, but let's not be ridiculous). If a string, it 617 another function, but let's not be ridiculous). If a string, it
618 should be just the contents of the header, not the name of the header 618 should be just the contents of the header, not the name of the header
619 itself nor the trailing newline. If a function, it will be called 619 itself nor the trailing newline. If a function, it will be called
620 with one argument: the possibly-nil name of the file associated with 620 with one argument: the possibly-nil name of the file associated with
621 the message buffer. For an explanation of fiddle-plexes, see the 621 the message buffer. For an explanation of fiddle-plexes, see the
622 documentation for the variable feedmail-fiddle-plex-blurb. In all 622 documentation for the variable `feedmail-fiddle-plex-blurb'. In all
623 cases the name element of the fiddle-plex is ignored and is hardwired 623 cases the name element of the fiddle-plex is ignored and is hardwired
624 by feedmail to either \"Message-Id\" or \"Resent-Message-Id\". 624 by feedmail to either \"Message-Id\" or \"Resent-Message-Id\".
625 625
626 You should let feedmail generate a Message-Id: for you unless you are sure 626 You should let feedmail generate a Message-Id: for you unless you are sure
627 that whatever you give your messages to will do it for you (e.g., most 627 that whatever you give your messages to will do it for you (e.g., most
653 653
654 If nil, nothing is done about Date:. 654 If nil, nothing is done about Date:.
655 655
656 If t, a Date: header of a predetermined format is produced, but only 656 If t, a Date: header of a predetermined format is produced, but only
657 if there is not already a Date: in the message. A value of t is 657 if there is not already a Date: in the message. A value of t is
658 equivalent to using the function feedmail-default-date-generator. 658 equivalent to using the function `feedmail-default-date-generator'.
659 659
660 If neither nil nor t, it may be a string, a fiddle-plex, or a function 660 If neither nil nor t, it may be a string, a fiddle-plex, or a function
661 which returns either nil, t, a string, or a fiddle-plex (or, in fact, 661 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
662 another function, but let's not be ridiculous). If a string, it 662 another function, but let's not be ridiculous). If a string, it
663 should be just the contents of the header, not the name of the header 663 should be just the contents of the header, not the name of the header
664 itself nor the trailing newline. If a function, it will be called 664 itself nor the trailing newline. If a function, it will be called
665 with one argument: the possibly-nil name of the file associated with 665 with one argument: the possibly-nil name of the file associated with
666 the message buffer. For an explanation of fiddle-plexes, see the 666 the message buffer. For an explanation of fiddle-plexes, see the
667 documentation for the variable feedmail-fiddle-plex-blurb. In all 667 documentation for the variable `feedmail-fiddle-plex-blurb'. In all
668 cases the name element of the fiddle-plex is ignored and is hardwired 668 cases the name element of the fiddle-plex is ignored and is hardwired
669 by feedmail to either \"Date\" or \"Resent-Date\". 669 by feedmail to either \"Date\" or \"Resent-Date\".
670 670
671 If you decide to format your own date field, do us all a favor and know 671 If you decide to format your own date field, do us all a favor and know
672 what you're doing. Study the relevant parts of RFC-822 and RFC-1123. 672 what you're doing. Study the relevant parts of RFC-822 and RFC-1123.
698 Each element of the list can also be a function which returns a 698 Each element of the list can also be a function which returns a
699 fiddle-plex. 699 fiddle-plex.
700 700
701 feedmail will use this list of fiddle-plexes to manipulate user-specified 701 feedmail will use this list of fiddle-plexes to manipulate user-specified
702 message header fields. It does this after it has completed all normal 702 message header fields. It does this after it has completed all normal
703 message header field manipulation and before calling feedmail-last-chance-hook. 703 message header field manipulation and before calling `feedmail-last-chance-hook'.
704 704
705 For an explanation of fiddle-plexes, see the documentation for the 705 For an explanation of fiddle-plexes, see the documentation for the
706 variable feedmail-fiddle-plex-blurb. In contrast to some other fiddle-plex 706 variable `feedmail-fiddle-plex-blurb'. In contrast to some other fiddle-plex
707 manipulation functions, in this context, it makes no sense to have an element 707 manipulation functions, in this context, it makes no sense to have an element
708 which is nil, t, or a simple string." 708 which is nil, t, or a simple string."
709 :group 'feedmail-headers 709 :group 'feedmail-headers
710 :type '(repeat (choice function) 710 :type '(repeat (choice function)
711 sexp) ; too complex to be described accurately 711 sexp) ; too complex to be described accurately
725 Spray mode is usually pointless, and if you can't think of a good reason for 725 Spray mode is usually pointless, and if you can't think of a good reason for
726 it, you should avoid it since it is inherently less efficient than normal 726 it, you should avoid it since it is inherently less efficient than normal
727 multiple delivery. One reason to use it is to overcome mis-featured mail 727 multiple delivery. One reason to use it is to overcome mis-featured mail
728 transports which betray your trust by revealing Bcc: addressees in the 728 transports which betray your trust by revealing Bcc: addressees in the
729 headers of a message. Another use is to do a crude form of mailmerge, for 729 headers of a message. Another use is to do a crude form of mailmerge, for
730 which see feedmail-spray-address-fiddle-plex-list. 730 which see `feedmail-spray-address-fiddle-plex-list'.
731 731
732 If one of the calls to the buffer-eating function results in an error, 732 If one of the calls to the buffer-eating function results in an error,
733 what happens next is carelessly defined, so beware." 733 what happens next is carelessly defined, so beware."
734 :group 'feedmail-spray 734 :group 'feedmail-spray
735 :type 'boolean 735 :type 'boolean
736 ) 736 )
737 737
738 (defvar feedmail-spray-this-address nil 738 (defvar feedmail-spray-this-address nil
739 "Do not set or change this variable. See feedmail-spray-address-fiddle-plex-list.") 739 "Do not set or change this variable. See `feedmail-spray-address-fiddle-plex-list'.")
740 740
741 (defcustom feedmail-spray-address-fiddle-plex-list nil 741 (defcustom feedmail-spray-address-fiddle-plex-list nil
742 "User-supplied specification for a crude form of mailmerge capability. 742 "User-supplied specification for a crude form of mailmerge capability.
743 When spraying is enabled, feedmail composes a list of envelope addresses. 743 When spraying is enabled, feedmail composes a list of envelope addresses.
744 In turn, feedmail-spray-this-address is temporarily set to each address 744 In turn, `feedmail-spray-this-address' is temporarily set to each address
745 \(stripped of any comments and angle brackets\) and calls a function which 745 \(stripped of any comments and angle brackets\) and calls a function which
746 fiddles message headers according to this variable. See the documentation for 746 fiddles message headers according to this variable. See the documentation for
747 `feedmail-fiddle-plex-blurb', for an overview of fiddle-plex data structures. 747 `feedmail-fiddle-plex-blurb', for an overview of fiddle-plex data structures.
748 748
749 May be nil, in which case nothing in particular is done about message 749 May be nil, in which case nothing in particular is done about message
770 770
771 (setq feedmail-spray-address-fiddle-plex-list 'my-address-embellisher) 771 (setq feedmail-spray-address-fiddle-plex-list 'my-address-embellisher)
772 772
773 The idea of the example is that, during spray mode, as each message is 773 The idea of the example is that, during spray mode, as each message is
774 about to be transmitted to an individual address, the function will be 774 about to be transmitted to an individual address, the function will be
775 called and will consult feedmail-spray-this-address to find the 775 called and will consult `feedmail-spray-this-address' to find the
776 stripped envelope email address (no comments or angle brackets). The 776 stripped envelope email address (no comments or angle brackets). The
777 function should return an embellished form of the address. 777 function should return an embellished form of the address.
778 778
779 The recipe for sending form letters is: (1) create a message with all 779 The recipe for sending form letters is: (1) create a message with all
780 addressees on Bcc: headers; (2) tell feedmail to remove Bcc: headers 780 addressees on Bcc: headers; (2) tell feedmail to remove Bcc: headers
781 before sending the message; (3) create a function which will embellish 781 before sending the message; (3) create a function which will embellish
782 stripped addresses, if desired; (4) define feedmail-spray-address-fiddle-plex-list 782 stripped addresses, if desired; (4) define `feedmail-spray-address-fiddle-plex-list'
783 appropriately; (5) send the message with feedmail-enable-spray set 783 appropriately; (5) send the message with `feedmail-enable-spray' set
784 non-nil; (6) stand back and watch co-workers wonder at how efficient 784 non-nil; (6) stand back and watch co-workers wonder at how efficient
785 you are at accomplishing inherently inefficient things." 785 you are at accomplishing inherently inefficient things."
786 :group 'feedmail-spray 786 :group 'feedmail-spray
787 :type 'sexp ; too complex to be described accurately 787 :type 'sexp ; too complex to be described accurately
788 ) 788 )
807 name. You can move a message from the draft to the main queue or vice 807 name. You can move a message from the draft to the main queue or vice
808 versa by pretending to send it and then selecting whichever queue 808 versa by pretending to send it and then selecting whichever queue
809 directory you want at the prompt. The right thing will happen. 809 directory you want at the prompt. The right thing will happen.
810 810
811 To transmit all the messages in the queue, invoke the command 811 To transmit all the messages in the queue, invoke the command
812 feedmail-run-the-queue or feedmail-run-the-queue-no-prompts." 812 `feedmail-run-the-queue' or `feedmail-run-the-queue-no-prompts'."
813 :group 'feedmail-queue 813 :group 'feedmail-queue
814 :type 'boolean 814 :type 'boolean
815 ) 815 )
816 816
817 817
818 (defcustom feedmail-queue-runner-confirm-global nil 818 (defcustom feedmail-queue-runner-confirm-global nil
819 "*If non-nil, give a y-or-n confirmation prompt before running the queue. 819 "*If non-nil, give a y-or-n confirmation prompt before running the queue.
820 Prompt even if the queue is about to be processed as a result of a call to 820 Prompt even if the queue is about to be processed as a result of a call to
821 feedmail-run-the-queue-no-prompts. This gives you a way to bail out 821 `feedmail-run-the-queue-no-prompts'. This gives you a way to bail out
822 without having to answer no to the individual message prompts." 822 without having to answer no to the individual message prompts."
823 :group 'feedmail-queue 823 :group 'feedmail-queue
824 :type 'boolean) 824 :type 'boolean)
825 825
826 826
866 866
867 867
868 (defcustom feedmail-ask-before-queue-prompt "FQM: Message action (q, i, d, e, ?)? [%s]: " 868 (defcustom feedmail-ask-before-queue-prompt "FQM: Message action (q, i, d, e, ?)? [%s]: "
869 "*A string which will be used for the message action prompt. 869 "*A string which will be used for the message action prompt.
870 If it contains a \"%s\", that will be replaced with the value of 870 If it contains a \"%s\", that will be replaced with the value of
871 feedmail-ask-before-queue-default." 871 `feedmail-ask-before-queue-default'."
872 :group 'feedmail-queue 872 :group 'feedmail-queue
873 :type 'string 873 :type 'string
874 ) 874 )
875 875
876 876
877 (defcustom feedmail-ask-before-queue-reprompt "FQM: Please type q, i, d, or e; or ? for help [%s]: " 877 (defcustom feedmail-ask-before-queue-reprompt "FQM: Please type q, i, d, or e; or ? for help [%s]: "
878 "*A string which will be used for repompting after invalid input. 878 "*A string which will be used for repompting after invalid input.
879 If it contains a \"%s\", that will be replaced with the value of 879 If it contains a \"%s\", that will be replaced with the value of
880 feedmail-ask-before-queue-default." 880 `feedmail-ask-before-queue-default'."
881 :group 'feedmail-queue 881 :group 'feedmail-queue
882 :type 'string 882 :type 'string
883 ) 883 )
884 884
885 885
919 (?? . feedmail-message-action-help)) 919 (?? . feedmail-message-action-help))
920 "An alist of choices for the message action prompt. 920 "An alist of choices for the message action prompt.
921 All of the values are function names, except help, which is a special 921 All of the values are function names, except help, which is a special
922 symbol that calls up help for the prompt (the help describes the 922 symbol that calls up help for the prompt (the help describes the
923 actions from the standard alist). To customize your own choices, 923 actions from the standard alist). To customize your own choices,
924 define a similar alist called feedmail-prompt-before-queue-user-alist. 924 define a similar alist called `feedmail-prompt-before-queue-user-alist'.
925 The actual alist used for message action will be the standard alist 925 The actual alist used for message action will be the standard alist
926 overlaid with the user-alist. To neutralize an item in the standard 926 overlaid with the user-alist. To neutralize an item in the standard
927 alist without providing a replacement, define an appropriate element 927 alist without providing a replacement, define an appropriate element
928 in the user alist with a value of nil." ) 928 in the user alist with a value of nil." )
929 929
930 930
931 (defcustom feedmail-prompt-before-queue-user-alist nil 931 (defcustom feedmail-prompt-before-queue-user-alist nil
932 "See feedmail-prompt-before-queue-standard-alist." 932 "See `feedmail-prompt-before-queue-standard-alist'."
933 :group 'feedmail-queue 933 :group 'feedmail-queue
934 :type '(repeat (cons character function)) 934 :type '(repeat (cons character function))
935 ) 935 )
936 936
937 937
938 (defcustom feedmail-prompt-before-queue-help-supplement nil 938 (defcustom feedmail-prompt-before-queue-help-supplement nil
939 "User-provided supplementary help string for the message action prompt. 939 "User-provided supplementary help string for the message action prompt.
940 When the message action prompt is shown, the user can as for verbose help, 940 When the message action prompt is shown, the user can as for verbose help,
941 at which point a buffer pops up describing the meaning of possible 941 at which point a buffer pops up describing the meaning of possible
942 responses to the prompt. Through various customizations (see, for 942 responses to the prompt. Through various customizations (see, for
943 example, feedmail-prompt-before-queue-user-alist), the available responses 943 example, `feedmail-prompt-before-queue-user-alist'), the available responses
944 and the prompt itself can be changed. If this variable is set to a string 944 and the prompt itself can be changed. If this variable is set to a string
945 value, that string is written to the help buffer after the standard info. 945 value, that string is written to the help buffer after the standard info.
946 It may contain embedded line breaks. It will be printed via princ." 946 It may contain embedded line breaks. It will be printed via `princ'."
947 :group 'feedmail-queue 947 :group 'feedmail-queue
948 :type '(choice (const nil) string) 948 :type '(choice (const nil) string)
949 ) 949 )
950 950
951 951
953 '((after-immediate . feedmail-queue-reminder-brief) 953 '((after-immediate . feedmail-queue-reminder-brief)
954 (after-queue . feedmail-queue-reminder-medium) 954 (after-queue . feedmail-queue-reminder-medium)
955 (after-draft . feedmail-queue-reminder-medium) 955 (after-draft . feedmail-queue-reminder-medium)
956 (after-run . feedmail-queue-reminder-brief) 956 (after-run . feedmail-queue-reminder-brief)
957 (on-demand . feedmail-run-the-queue-global-prompt)) 957 (on-demand . feedmail-run-the-queue-global-prompt))
958 "See feedmail-queue-reminder." 958 "See `feedmail-queue-reminder'."
959 :group 'feedmail-queue 959 :group 'feedmail-queue
960 :type '(repeat (cons (choice :tag "Event" 960 :type '(repeat (cons (choice :tag "Event"
961 (const on-demand) 961 (const on-demand)
962 (const after-immediate) 962 (const after-immediate)
963 (const after-queue) 963 (const after-queue)
1015 1015
1016 1016
1017 (defcustom feedmail-queue-use-send-time-for-message-id nil 1017 (defcustom feedmail-queue-use-send-time-for-message-id nil
1018 "*If non-nil, use send time for the Message-Id: header value. 1018 "*If non-nil, use send time for the Message-Id: header value.
1019 This variable is used by the default Message-Id: generating function, 1019 This variable is used by the default Message-Id: generating function,
1020 feedmail-default-message-id-generator. If nil, the default, the 1020 `feedmail-default-message-id-generator'. If nil, the default, the
1021 last-modified timestamp of the queue file is used to create the 1021 last-modified timestamp of the queue file is used to create the
1022 message Message-Id: header; if there is no queue file, the current time is 1022 message Message-Id: header; if there is no queue file, the current time is
1023 used." 1023 used."
1024 :group 'feedmail-queue 1024 :group 'feedmail-queue
1025 :type 'boolean 1025 :type 'boolean
1059 (defcustom feedmail-queue-default-file-slug t 1059 (defcustom feedmail-queue-default-file-slug t
1060 "*Indicates what to use for subject-less messages when forming a file name. 1060 "*Indicates what to use for subject-less messages when forming a file name.
1061 When feedmail queues a message, it creates a unique file name. By default, 1061 When feedmail queues a message, it creates a unique file name. By default,
1062 the file name is based in part on the subject of the message being queued. 1062 the file name is based in part on the subject of the message being queued.
1063 If there is no subject, consult this variable. See documentation for the 1063 If there is no subject, consult this variable. See documentation for the
1064 function feedmail-queue-subject-slug-maker. 1064 function `feedmail-queue-subject-slug-maker'.
1065 1065
1066 If t, an innocuous default is used. 1066 If t, an innocuous default is used.
1067 1067
1068 If a string, it is used directly. 1068 If a string, it is used directly.
1069 1069
1081 1081
1082 (defcustom feedmail-queue-fqm-suffix ".fqm" 1082 (defcustom feedmail-queue-fqm-suffix ".fqm"
1083 "*The FQM suffix used to distinguish feedmail queued message files. 1083 "*The FQM suffix used to distinguish feedmail queued message files.
1084 You probably want this to be a period followed by some letters and/or 1084 You probably want this to be a period followed by some letters and/or
1085 digits. The distinction is to be able to tell them from other random 1085 digits. The distinction is to be able to tell them from other random
1086 files that happen to be in the feedmail-queue-directory or 1086 files that happen to be in the `feedmail-queue-directory' or
1087 feedmail-queue-draft-directory. By the way, FQM stands for feedmail 1087 `feedmail-queue-draft-directory'. By the way, FQM stands for feedmail
1088 queued message." 1088 queued message."
1089 :group 'feedmail-queue 1089 :group 'feedmail-queue
1090 :type 'string 1090 :type 'string
1091 ) 1091 )
1092 1092
1131 for different scenarios. Users shouldn't set or change this 1131 for different scenarios. Users shouldn't set or change this
1132 variable, but may depend on its value as described here.") 1132 variable, but may depend on its value as described here.")
1133 1133
1134 1134
1135 (defun feedmail-mail-send-hook-splitter () 1135 (defun feedmail-mail-send-hook-splitter ()
1136 "Facilitate dividing mail-send-hook things into queued and immediate cases. 1136 "Facilitate dividing `mail-send-hook' things into queued and immediate cases.
1137 If you have mail-send-hook functions that should only be called for sending/ 1137 If you have `mail-send-hook' functions that should only be called for sending/
1138 queueing messages or only be called for the sending of queued messages, this is 1138 queueing messages or only be called for the sending of queued messages, this is
1139 for you. Add this function to mail-send-hook with something like this: 1139 for you. Add this function to `mail-send-hook' with something like this:
1140 1140
1141 (add-hook 'mail-send-hook 'feedmail-mail-send-hook-splitter) 1141 (add-hook 'mail-send-hook 'feedmail-mail-send-hook-splitter)
1142 1142
1143 Then add the functions you want called to either feedmail-mail-send-hook-queued 1143 Then add the functions you want called to either `feedmail-mail-send-hook-queued'
1144 or feedmail-mail-send-hook, as apprpriate. The distinction is that 1144 or `feedmail-mail-send-hook', as apprpriate. The distinction is that
1145 feedmail-mail-send-hook will be called when you send mail from a composition 1145 `feedmail-mail-send-hook' will be called when you send mail from a composition
1146 buffer (typically by typing C-c C-c), whether the message is sent immediately 1146 buffer (typically by typing C-c C-c), whether the message is sent immediately
1147 or placed in the queue or drafts directory. feedmail-mail-send-hook-queued is 1147 or placed in the queue or drafts directory. `feedmail-mail-send-hook-queued' is
1148 called when messages are being sent from the queue directory, typically via a 1148 called when messages are being sent from the queue directory, typically via a
1149 call to feedmail-run-the-queue." 1149 call to `feedmail-run-the-queue'."
1150 (if feedmail-queue-runner-is-active 1150 (if feedmail-queue-runner-is-active
1151 (run-hooks 'feedmail-mail-send-hook-queued) 1151 (run-hooks 'feedmail-mail-send-hook-queued)
1152 (run-hooks 'feedmail-mail-send-hook)) 1152 (run-hooks 'feedmail-mail-send-hook))
1153 ) 1153 )
1154 1154
1155 1155
1156 (defvar feedmail-mail-send-hook nil 1156 (defvar feedmail-mail-send-hook nil
1157 "*See documentation for feedmail-mail-send-hook-splitter.") 1157 "*See documentation for `feedmail-mail-send-hook-splitter'.")
1158 1158
1159 1159
1160 (defvar feedmail-mail-send-hook-queued nil 1160 (defvar feedmail-mail-send-hook-queued nil
1161 "*See documentation for feedmail-mail-send-hook-splitter.") 1161 "*See documentation for `feedmail-mail-send-hook-splitter'.")
1162 1162
1163 1163
1164 (defun feedmail-confirm-addresses-hook-example () 1164 (defun feedmail-confirm-addresses-hook-example ()
1165 "An example of a feedmail-last-chance-hook. 1165 "An example of a `feedmail-last-chance-hook'.
1166 It shows the simple addresses and gets a confirmation. Use as: 1166 It shows the simple addresses and gets a confirmation. Use as:
1167 (setq feedmail-last-chance-hook 'feedmail-confirm-addresses-hook-example)." 1167 (setq feedmail-last-chance-hook 'feedmail-confirm-addresses-hook-example)."
1168 (save-window-excursion 1168 (save-window-excursion
1169 (display-buffer (set-buffer (get-buffer-create " F-C-A-H-E"))) 1169 (display-buffer (set-buffer (get-buffer-create " F-C-A-H-E")))
1170 (erase-buffer) 1170 (erase-buffer)
1177 (defcustom feedmail-last-chance-hook nil 1177 (defcustom feedmail-last-chance-hook nil
1178 "*User's last opportunity to modify the message on its way out. 1178 "*User's last opportunity to modify the message on its way out.
1179 It has already had all the header prepping from the standard package. 1179 It has already had all the header prepping from the standard package.
1180 The next step after running the hook will be to push the buffer into a 1180 The next step after running the hook will be to push the buffer into a
1181 subprocess that mails the mail. The hook might be interested in 1181 subprocess that mails the mail. The hook might be interested in
1182 these: (1) feedmail-prepped-text-buffer contains the header and body 1182 these: (1) `feedmail-prepped-text-buffer' contains the header and body
1183 of the message, ready to go; (2) feedmail-address-list contains a list 1183 of the message, ready to go; (2) `feedmail-address-list' contains a list
1184 of simplified recipients of addresses which are to be given to the 1184 of simplified recipients of addresses which are to be given to the
1185 subprocess (the hook may change the list); (3) feedmail-error-buffer 1185 subprocess (the hook may change the list); (3) `feedmail-error-buffer'
1186 is an empty buffer intended to soak up errors for display to the user. 1186 is an empty buffer intended to soak up errors for display to the user.
1187 If the hook allows interactive activity, the user should not send more 1187 If the hook allows interactive activity, the user should not send more
1188 mail while in the hook since some of the internal buffers will be 1188 mail while in the hook since some of the internal buffers will be
1189 reused and things will get confused." 1189 reused and things will get confused."
1190 :group 'feedmail-misc 1190 :group 'feedmail-misc
1195 (defcustom feedmail-before-fcc-hook nil 1195 (defcustom feedmail-before-fcc-hook nil
1196 "*User's last opportunity to modify the message before Fcc action. 1196 "*User's last opportunity to modify the message before Fcc action.
1197 It has already had all the header prepping from the standard package. 1197 It has already had all the header prepping from the standard package.
1198 The next step after running the hook will be to save the message via 1198 The next step after running the hook will be to save the message via
1199 Fcc: processing. The hook might be interested in these: (1) 1199 Fcc: processing. The hook might be interested in these: (1)
1200 feedmail-prepped-text-buffer contains the header and body of the 1200 `feedmail-prepped-text-buffer' contains the header and body of the
1201 message, ready to go; (2) feedmail-address-list contains a list of 1201 message, ready to go; (2) `feedmail-address-list' contains a list of
1202 simplified recipients of addressees to whom the message was sent (3) 1202 simplified recipients of addressees to whom the message was sent (3)
1203 feedmail-error-buffer is an empty buffer intended to soak up errors 1203 `feedmail-error-buffer' is an empty buffer intended to soak up errors
1204 for display to the user. If the hook allows interactive activity, the 1204 for display to the user. If the hook allows interactive activity, the
1205 user should not send more mail while in the hook since some of the 1205 user should not send more mail while in the hook since some of the
1206 internal buffers will be reused and things will get confused." 1206 internal buffers will be reused and things will get confused."
1207 :group 'feedmail-misc 1207 :group 'feedmail-misc
1208 :type 'hook 1208 :type 'hook
1211 (defcustom feedmail-queue-runner-mode-setter 1211 (defcustom feedmail-queue-runner-mode-setter
1212 '(lambda (&optional arg) (mail-mode)) 1212 '(lambda (&optional arg) (mail-mode))
1213 "*A function to set the proper mode of a message file. 1213 "*A function to set the proper mode of a message file.
1214 Called when the message is read back out of the queue directory with a single 1214 Called when the message is read back out of the queue directory with a single
1215 argument, the optional argument used in the call to 1215 argument, the optional argument used in the call to
1216 feedmail-run-the-queue or feedmail-run-the-queue-no-prompts. 1216 `feedmail-run-the-queue' or `feedmail-run-the-queue-no-prompts'.
1217 1217
1218 Most people want `mail-mode', so the default value is an anonymous 1218 Most people want `mail-mode', so the default value is an anonymous
1219 function which is just a wrapper to ignore the supplied argument when 1219 function which is just a wrapper to ignore the supplied argument when
1220 calling it, but here's your chance to have something different. 1220 calling it, but here's your chance to have something different.
1221 Called with funcall, not `call-interactively'." 1221 Called with funcall, not `call-interactively'."
1233 1233
1234 When trying to send a queued message, if the value of this variable is 1234 When trying to send a queued message, if the value of this variable is
1235 non-nil, feedmail will first try to send the message using the value 1235 non-nil, feedmail will first try to send the message using the value
1236 of `mail-header-separator'. If it can't find that, it will temporarily 1236 of `mail-header-separator'. If it can't find that, it will temporarily
1237 set `mail-header-separator' to the value of 1237 set `mail-header-separator' to the value of
1238 feedmail-queue-alternative-mail-header-separator and try again." 1238 `feedmail-queue-alternative-mail-header-separator' and try again."
1239 :group 'feedmail-queue 1239 :group 'feedmail-queue
1240 :type '(choice (const nil) string) 1240 :type '(choice (const nil) string)
1241 ) 1241 )
1242 1242
1243 1243
1244 (defcustom feedmail-queue-runner-message-sender 'mail-send-and-exit 1244 (defcustom feedmail-queue-runner-message-sender 'mail-send-and-exit
1245 "*Function to initiate sending a message file. 1245 "*Function to initiate sending a message file.
1246 Called for each message read back out of the queue directory with a 1246 Called for each message read back out of the queue directory with a
1247 single argument, the optional argument used in the call to 1247 single argument, the optional argument used in the call to
1248 feedmail-run-the-queue or feedmail-run-the-queue-no-prompts. 1248 `feedmail-run-the-queue' or `feedmail-run-the-queue-no-prompts'.
1249 Interactively, that argument will be the prefix argument. Most people 1249 Interactively, that argument will be the prefix argument. Most people
1250 want mail-send-and-exit (bound to C-c C-c in mail-mode), but here's 1250 want `mail-send-and-exit' (bound to C-c C-c in mail-mode), but here's
1251 your chance to have something different. Called with funcall, not 1251 your chance to have something different. Called with `funcall', not
1252 call-interactively." 1252 `call-interactively'."
1253 :group 'feedmail-queue 1253 :group 'feedmail-queue
1254 :type 'function 1254 :type 'function
1255 ) 1255 )
1256 1256
1257 1257
1289 "*Function used to send the prepped buffer to a subprocess. 1289 "*Function used to send the prepped buffer to a subprocess.
1290 The function's three (mandatory) arguments are: (1) the buffer 1290 The function's three (mandatory) arguments are: (1) the buffer
1291 containing the prepped message; (2) a buffer where errors should be 1291 containing the prepped message; (2) a buffer where errors should be
1292 directed; and (3) a list containing the addresses individually as 1292 directed; and (3) a list containing the addresses individually as
1293 strings. Three popular choices for this are 1293 strings. Three popular choices for this are
1294 feedmail-buffer-to-binmail, feedmail-buffer-to-smtpmail, and 1294 `feedmail-buffer-to-binmail', `feedmail-buffer-to-smtpmail', and
1295 feedmail-buffer-to-sendmail. If you use the sendmail form, you 1295 `feedmail-buffer-to-sendmail'. If you use the sendmail form, you
1296 probably want to set feedmail-nuke-bcc and/or feedmail-nuke-resent-bcc 1296 probably want to set `feedmail-nuke-bcc' and/or `feedmail-nuke-resent-bcc'
1297 to nil. If you use the binmail form, check the value of 1297 to nil. If you use the binmail form, check the value of
1298 feedmail-binmail-template." 1298 `feedmail-binmail-template'."
1299 :group 'feedmail-misc 1299 :group 'feedmail-misc
1300 :type 'function 1300 :type 'function
1301 ) 1301 )
1302 1302
1303 1303
1304 (defcustom feedmail-binmail-template (if mail-interactive "/bin/mail %s" "/bin/rmail %s") 1304 (defcustom feedmail-binmail-template (if mail-interactive "/bin/mail %s" "/bin/rmail %s")
1305 "*Command template for the subprocess which will get rid of the mail. 1305 "*Command template for the subprocess which will get rid of the mail.
1306 It can result in any command understandable by /bin/sh. Might not 1306 It can result in any command understandable by /bin/sh. Might not
1307 work at all in non-Unix environments. The single '%s', if present, 1307 work at all in non-Unix environments. The single '%s', if present,
1308 gets replaced by the space-separated, simplified list of addressees. 1308 gets replaced by the space-separated, simplified list of addressees.
1309 Used in feedmail-buffer-to-binmail to form the shell command which 1309 Used in `feedmail-buffer-to-binmail' to form the shell command which
1310 will receive the contents of the prepped buffer as stdin. If you'd 1310 will receive the contents of the prepped buffer as stdin. If you'd
1311 like your errors to come back as mail instead of immediately in a 1311 like your errors to come back as mail instead of immediately in a
1312 buffer, try /bin/rmail instead of /bin/mail (this can be accomplished 1312 buffer, try /bin/rmail instead of /bin/mail (this can be accomplished
1313 by keeping the default nil setting of `mail-interactive'). You might 1313 by keeping the default nil setting of `mail-interactive'). You might
1314 also like to consult local mail experts for any other interesting 1314 also like to consult local mail experts for any other interesting
1533 (feedmail-send-it))) 1533 (feedmail-send-it)))
1534 1534
1535 1535
1536 ;;;###autoload 1536 ;;;###autoload
1537 (defun feedmail-run-the-queue-no-prompts (&optional arg) 1537 (defun feedmail-run-the-queue-no-prompts (&optional arg)
1538 "Like feedmail-run-the-queue, but suppress confirmation prompts." 1538 "Like `feedmail-run-the-queue', but suppress confirmation prompts."
1539 (interactive "p") 1539 (interactive "p")
1540 (let ((feedmail-confirm-outgoing nil)) (feedmail-run-the-queue arg))) 1540 (let ((feedmail-confirm-outgoing nil)) (feedmail-run-the-queue arg)))
1541 1541
1542 ;;;###autoload 1542 ;;;###autoload
1543 (defun feedmail-run-the-queue-global-prompt (&optional arg) 1543 (defun feedmail-run-the-queue-global-prompt (&optional arg)
1544 "Like feedmail-run-the-queue, but with a global confirmation prompt. 1544 "Like `feedmail-run-the-queue', but with a global confirmation prompt.
1545 This is generally most useful if run non-interactively, since you can 1545 This is generally most useful if run non-interactively, since you can
1546 bail out with an appropriate answer to the global confirmation prompt." 1546 bail out with an appropriate answer to the global confirmation prompt."
1547 (interactive "p") 1547 (interactive "p")
1548 (let ((feedmail-queue-runner-confirm-global t)) (feedmail-run-the-queue arg))) 1548 (let ((feedmail-queue-runner-confirm-global t)) (feedmail-run-the-queue arg)))
1549 1549
1676 ;;;###autoload 1676 ;;;###autoload
1677 (defun feedmail-queue-reminder (&optional what-event) 1677 (defun feedmail-queue-reminder (&optional what-event)
1678 "Perform some kind of reminder activity about queued and draft messages. 1678 "Perform some kind of reminder activity about queued and draft messages.
1679 Called with an optional symbol argument which says what kind of event 1679 Called with an optional symbol argument which says what kind of event
1680 is triggering the reminder activity. The default is 'on-demand, which 1680 is triggering the reminder activity. The default is 'on-demand, which
1681 is what you typically would use if you were putting this in your emacs start-up 1681 is what you typically would use if you were putting this in your Emacs start-up
1682 or mail hook code. Other recognized values for WHAT-EVENT (these are passed 1682 or mail hook code. Other recognized values for WHAT-EVENT (these are passed
1683 internally by feedmail): 1683 internally by feedmail):
1684 1684
1685 after-immediate (a message has just been sent in immediate mode) 1685 after-immediate (a message has just been sent in immediate mode)
1686 after-queue (a message has just been queued) 1686 after-queue (a message has just been queued)
1687 after-draft (a message has just been placed in the draft directory) 1687 after-draft (a message has just been placed in the draft directory)
1688 after-run (the queue has just been run, possibly sending messages) 1688 after-run (the queue has just been run, possibly sending messages)
1689 1689
1690 WHAT-EVENT is used as a key into the table feedmail-queue-reminder-alist. If 1690 WHAT-EVENT is used as a key into the table `feedmail-queue-reminder-alist'. If
1691 the associated value is a function, it is called without arguments and is expected 1691 the associated value is a function, it is called without arguments and is expected
1692 to perform the reminder activity. You can supply your own reminder functions 1692 to perform the reminder activity. You can supply your own reminder functions
1693 by redefining feedmail-queue-reminder-alist. If you don't want any reminders, 1693 by redefining `feedmail-queue-reminder-alist'. If you don't want any reminders,
1694 you can set feedmail-queue-reminder-alist to nil." 1694 you can set `feedmail-queue-reminder-alist' to nil."
1695 (interactive "p") 1695 (interactive "p")
1696 (let ((key (if (and what-event (symbolp what-event)) what-event 'on-demand)) entry reminder) 1696 (let ((key (if (and what-event (symbolp what-event)) what-event 'on-demand)) entry reminder)
1697 (setq entry (assoc key feedmail-queue-reminder-alist)) 1697 (setq entry (assoc key feedmail-queue-reminder-alist))
1698 (setq reminder (cdr entry)) 1698 (setq reminder (cdr entry))
1699 (if (fboundp reminder) (funcall reminder))) 1699 (if (fboundp reminder) (funcall reminder)))
1869 (defun feedmail-queue-subject-slug-maker (&optional queue-directory) 1869 (defun feedmail-queue-subject-slug-maker (&optional queue-directory)
1870 "Create a name for storing the message in the queue. 1870 "Create a name for storing the message in the queue.
1871 Optional argument QUEUE-DIRECTORY specifies into which directory the 1871 Optional argument QUEUE-DIRECTORY specifies into which directory the
1872 file will be placed. The name is based on the Subject: header (if 1872 file will be placed. The name is based on the Subject: header (if
1873 there is one). If there is no subject, 1873 there is one). If there is no subject,
1874 feedmail-queue-default-file-slug is consulted Special characters are 1874 `feedmail-queue-default-file-slug' is consulted. Special characters are
1875 mapped to mostly alphanumerics for safety." 1875 mapped to mostly alphanumerics for safety."
1876 (let ((eoh-marker) (case-fold-search t) (subject "") (s-point)) 1876 (let ((eoh-marker) (case-fold-search t) (subject "") (s-point))
1877 (setq eoh-marker (feedmail-find-eoh)) 1877 (setq eoh-marker (feedmail-find-eoh))
1878 (goto-char (point-min)) 1878 (goto-char (point-min))
1879 ;; get raw subject value (first line, anyhow) 1879 ;; get raw subject value (first line, anyhow)
2150 2150
2151 (defun feedmail-fiddle-header (name value &optional action folding) 2151 (defun feedmail-fiddle-header (name value &optional action folding)
2152 "Internal feedmail function for jamming fields into message header. 2152 "Internal feedmail function for jamming fields into message header.
2153 NAME, VALUE, ACTION, and FOLDING are the four elements of a 2153 NAME, VALUE, ACTION, and FOLDING are the four elements of a
2154 fiddle-plex, as described in the documentation for the variable 2154 fiddle-plex, as described in the documentation for the variable
2155 feedmail-fiddle-plex-blurb." 2155 `feedmail-fiddle-plex-blurb'."
2156 (let ((case-fold-search t) 2156 (let ((case-fold-search t)
2157 (header-colon (concat (regexp-quote name) ":")) 2157 (header-colon (concat (regexp-quote name) ":"))
2158 header-regexp eoh-marker has-like ag-like val-like that-point) 2158 header-regexp eoh-marker has-like ag-like val-like that-point)
2159 (setq header-regexp (concat "^" header-colon)) 2159 (setq header-regexp (concat "^" header-colon))
2160 (setq eoh-marker (feedmail-find-eoh)) 2160 (setq eoh-marker (feedmail-find-eoh))
2247 feedmail-error-buffer 2247 feedmail-error-buffer
2248 feedmail-address-list)))) 2248 feedmail-address-list))))
2249 2249
2250 2250
2251 (defun feedmail-envelope-deducer (eoh-marker) 2251 (defun feedmail-envelope-deducer (eoh-marker)
2252 "If feedmail-deduce-envelope-from is false, simply return `user-mail-address'. 2252 "If `feedmail-deduce-envelope-from' is false, simply return `user-mail-address'.
2253 Else, look for Sender: or From: (or Resent-*) and 2253 Else, look for Sender: or From: (or Resent-*) and
2254 return that value." 2254 return that value."
2255 (if (not feedmail-deduce-envelope-from) 2255 (if (not feedmail-deduce-envelope-from)
2256 user-mail-address 2256 user-mail-address
2257 (let ((from-list)) 2257 (let ((from-list))
2343 (feedmail-rfc822-date date-time)) 2343 (feedmail-rfc822-date date-time))
2344 ) 2344 )
2345 2345
2346 2346
2347 (defun feedmail-fiddle-date (maybe-file) 2347 (defun feedmail-fiddle-date (maybe-file)
2348 "Fiddle Date:. See documentation of feedmail-date-generator." 2348 "Fiddle Date:. See documentation of `feedmail-date-generator'."
2349 ;; default is to fall off the end of the list and do nothing 2349 ;; default is to fall off the end of the list and do nothing
2350 (cond 2350 (cond
2351 ;; nil means do nothing 2351 ;; nil means do nothing
2352 ((eq nil feedmail-date-generator) nil) 2352 ((eq nil feedmail-date-generator) nil)
2353 ;; t is the same a using the function feedmail-default-date-generator, so let it and recurse 2353 ;; t is the same a using the function feedmail-default-date-generator, so let it and recurse
2375 2375
2376 2376
2377 (defun feedmail-default-message-id-generator (maybe-file) 2377 (defun feedmail-default-message-id-generator (maybe-file)
2378 "Default function for generating Message-Id: header contents. 2378 "Default function for generating Message-Id: header contents.
2379 Based on a date and a sort of random number for tie breaking. Unless 2379 Based on a date and a sort of random number for tie breaking. Unless
2380 feedmail-message-id-suffix is defined, uses `user-mail-address', so be 2380 `feedmail-message-id-suffix' is defined, uses `user-mail-address', so be
2381 sure it's set." 2381 sure it's set."
2382 (let ((date-time) 2382 (let ((date-time)
2383 (end-stuff (if feedmail-message-id-suffix feedmail-message-id-suffix user-mail-address))) 2383 (end-stuff (if feedmail-message-id-suffix feedmail-message-id-suffix user-mail-address)))
2384 (if (string-match "^\\(.*\\)@" end-stuff) 2384 (if (string-match "^\\(.*\\)@" end-stuff)
2385 (setq end-stuff 2385 (setq end-stuff
2393 (feedmail-rfc822-time-zone date-time) 2393 (feedmail-rfc822-time-zone date-time)
2394 end-stuff)) 2394 end-stuff))
2395 ) 2395 )
2396 2396
2397 (defun feedmail-fiddle-message-id (maybe-file) 2397 (defun feedmail-fiddle-message-id (maybe-file)
2398 "Fiddle Message-Id:. See documentation of feedmail-message-id-generator." 2398 "Fiddle Message-Id:. See documentation of `feedmail-message-id-generator'."
2399 ;; default is to fall off the end of the list and do nothing 2399 ;; default is to fall off the end of the list and do nothing
2400 (cond 2400 (cond
2401 ;; nil means do nothing 2401 ;; nil means do nothing
2402 ((eq nil feedmail-message-id-generator) nil) 2402 ((eq nil feedmail-message-id-generator) nil)
2403 ;; t is the same a using the function feedmail-default-message-id-generator, so let it and recurse 2403 ;; t is the same a using the function feedmail-default-message-id-generator, so let it and recurse
2434 (if feedmail-x-mailer-line-user-appendage ") " ")") 2434 (if feedmail-x-mailer-line-user-appendage ") " ")")
2435 feedmail-x-mailer-line-user-appendage)) 2435 feedmail-x-mailer-line-user-appendage))
2436 2436
2437 2437
2438 (defun feedmail-fiddle-x-mailer () 2438 (defun feedmail-fiddle-x-mailer ()
2439 "Fiddle X-Mailer:. See documentation of feedmail-x-mailer-line." 2439 "Fiddle X-Mailer:. See documentation of `feedmail-x-mailer-line'."
2440 ;; default is to fall off the end of the list and do nothing 2440 ;; default is to fall off the end of the list and do nothing
2441 (cond 2441 (cond
2442 ;; t is the same a using the function feedmail-default-x-mailer-generator, so let it and recurse 2442 ;; t is the same a using the function feedmail-default-x-mailer-generator, so let it and recurse
2443 ((eq t feedmail-x-mailer-line) 2443 ((eq t feedmail-x-mailer-line)
2444 (let ((feedmail-x-mailer-line (feedmail-default-x-mailer-generator))) 2444 (let ((feedmail-x-mailer-line (feedmail-default-x-mailer-generator)))
2462 (nth 2 feedmail-x-mailer-line) ; action 2462 (nth 2 feedmail-x-mailer-line) ; action
2463 (nth 3 feedmail-x-mailer-line))))) ; folding 2463 (nth 3 feedmail-x-mailer-line))))) ; folding
2464 2464
2465 2465
2466 (defun feedmail-fiddle-spray-address (addy-plex) 2466 (defun feedmail-fiddle-spray-address (addy-plex)
2467 "Fiddle header for single spray address. Uses feedmail-spray-this-address." 2467 "Fiddle header for single spray address. Uses `feedmail-spray-this-address'."
2468 ;; default is to fall off the end of the list and do nothing 2468 ;; default is to fall off the end of the list and do nothing
2469 (cond 2469 (cond
2470 ;; nil means do nothing 2470 ;; nil means do nothing
2471 ((eq nil addy-plex) nil) 2471 ((eq nil addy-plex) nil)
2472 ;; t means the same as using "To:" and unembellished addy 2472 ;; t means the same as using "To:" and unembellished addy
2605 2605
2606 (require 'mail-utils) ; pick up mail-strip-quoted-names 2606 (require 'mail-utils) ; pick up mail-strip-quoted-names
2607 (defun feedmail-deduce-address-list (message-buffer header-start header-end addr-regexp address-list) 2607 (defun feedmail-deduce-address-list (message-buffer header-start header-end addr-regexp address-list)
2608 "Get address list with all comments and other excitement trimmed. 2608 "Get address list with all comments and other excitement trimmed.
2609 Addresses are collected only from headers whose names match the fourth 2609 Addresses are collected only from headers whose names match the fourth
2610 argument Returns a list of strings. Duplicate addresses will have 2610 argument. Returns a list of strings. Duplicate addresses will have
2611 been weeded out." 2611 been weeded out."
2612 (let ((simple-address) 2612 (let ((simple-address)
2613 (address-blob) 2613 (address-blob)
2614 (this-line) 2614 (this-line)
2615 (this-line-end)) 2615 (this-line-end))