Mercurial > emacs
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)) |