/[emacs]/emacs/man/message.texi
ViewVC logotype

Diff of /emacs/man/message.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.14.4.2 by miles, Tue Oct 14 22:56:24 2003 UTC revision 1.14.4.3 by miles, Thu Sep 16 00:12:19 2004 UTC
# Line 1  Line 1 
1  \input texinfo                  @c -*-texinfo-*-  \input texinfo                  @c -*-texinfo-*-
2    
3  @setfilename ../info/message  @setfilename ../info/message
4  @settitle Message 5.9.0 Manual  @settitle Message Manual
5  @synindex fn cp  @synindex fn cp
6  @synindex vr cp  @synindex vr cp
7  @synindex pg cp  @synindex pg cp
8  @copying  @copying
9  This file documents Message, the Emacs message composition mode.  This file documents Message, the Emacs message composition mode.
10    
11  Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software  Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
12  Foundation, Inc.  Free Software Foundation, Inc.
13    
14  @quotation  @quotation
15  Permission is granted to copy, distribute and/or modify this document  Permission is granted to copy, distribute and/or modify this document
# Line 40  license to the document, as described in Line 40  license to the document, as described in
40  @end iftex  @end iftex
41  @setchapternewpage odd  @setchapternewpage odd
42    
   
43  @titlepage  @titlepage
44  @title Message 5.9.0 Manual  @title Message Manual
45    
46  @author by Lars Magne Ingebrigtsen  @author by Lars Magne Ingebrigtsen
47  @page  @page
48    
49  @vskip 0pt plus 1filll  @vskip 0pt plus 1filll
50  @insertcopying  @insertcopying
51  @end titlepage  @end titlepage
# Line 67  Message mode buffers. Line 67  Message mode buffers.
67  * Key Index::         List of Message mode keys.  * Key Index::         List of Message mode keys.
68  @end menu  @end menu
69    
70  This manual corresponds to Message 5.9.0.  Message is distributed with  This manual corresponds to Message v5.10.6.  Message is distributed
71  the Gnus distribution bearing the same version number as this manual.  with the Gnus distribution bearing the same version number as this
72    manual.
73    
74    
75  @node Interface  @node Interface
# Line 92  sending it. Line 93  sending it.
93  * Forwarding::           Forwarding a message via news or mail.  * Forwarding::           Forwarding a message via news or mail.
94  * Resending::            Resending a mail message.  * Resending::            Resending a mail message.
95  * Bouncing::             Bouncing a mail message.  * Bouncing::             Bouncing a mail message.
96    * Mailing Lists::        Send mail to mailing lists.
97  @end menu  @end menu
98    
99    
# Line 150  just return @code{nil}, and the normal m Line 152  just return @code{nil}, and the normal m
152  header will be used.  header will be used.
153    
154  This function can also return a list.  In that case, each list element  This function can also return a list.  In that case, each list element
155  should be a cons, where the car should be the name of an header  should be a cons, where the @sc{car} should be the name of a header
156  (eg. @code{Cc}) and the cdr should be the header value  (e.g. @code{Cc}) and the @sc{cdr} should be the header value
157  (eg. @samp{larsi@@ifi.uio.no}).  All these headers will be inserted into  (e.g. @samp{larsi@@ifi.uio.no}).  All these headers will be inserted into
158  the head of the outgoing mail.  the head of the outgoing mail.
159    
160    
# Line 171  but you can change the behavior to suit Line 173  but you can change the behavior to suit
173  @code{message-wide-reply-to-function}.  It is used in the same way as  @code{message-wide-reply-to-function}.  It is used in the same way as
174  @code{message-reply-to-function} (@pxref{Reply}).  @code{message-reply-to-function} (@pxref{Reply}).
175    
176  @findex message-dont-reply-to-names  @vindex message-dont-reply-to-names
177  Addresses that match the @code{message-dont-reply-to-names} regular  Addresses that match the @code{message-dont-reply-to-names} regular
178  expression will be removed from the @code{Cc} header.  expression will be removed from the @code{Cc} header.
179    
180    @vindex message-wide-reply-confirm-recipients
181    If @code{message-wide-reply-confirm-recipients} is non-@code{nil} you
182    will be asked to confirm that you want to reply to multiple
183    recipients.  The default is @code{nil}.
184    
185  @node Followup  @node Followup
186  @section Followup  @section Followup
# Line 204  it is @code{nil}, don't use the value. Line 210  it is @code{nil}, don't use the value.
210  The @code{message-cancel-news} command cancels the article in the  The @code{message-cancel-news} command cancels the article in the
211  current buffer.  current buffer.
212    
213    @vindex message-cancel-message
214    The value of @code{message-cancel-message} is inserted in the body of
215    the cancel message.  The default is @samp{I am canceling my own
216    article.}.
217    
218    @cindex Cancel Locks
219    @vindex message-insert-canlock
220    @cindex canlock
221    When Message posts news messages, it inserts @code{Cancel-Lock}
222    headers by default.  This is a cryptographic header that ensures that
223    only you can cancel your own messages, which is nice.  The downside
224    is that if you lose your @file{.emacs} file (which is where Gnus
225    stores the secret cancel lock password (which is generated
226    automatically the first time you use this feature)), you won't be
227    able to cancel your message.
228    
229    Whether to insert the header or not is controlled by the
230    @code{message-insert-canlock} variable.
231    
232    Not many news servers respect the @code{Cancel-Lock} header yet, but
233    this is expected to change in the future.
234    
235    
236  @node Superseding  @node Superseding
237  @section Superseding  @section Superseding
# Line 261  constructed.  The default value is @code Line 289  constructed.  The default value is @code
289  @item message-forward-as-mime  @item message-forward-as-mime
290  @vindex message-forward-as-mime  @vindex message-forward-as-mime
291  If this variable is @code{t} (the default), forwarded messages are  If this variable is @code{t} (the default), forwarded messages are
292  included as inline MIME RFC822 parts.  If it's @code{nil}, forwarded  included as inline @acronym{MIME} RFC822 parts.  If it's @code{nil}, forwarded
293  messages will just be copied inline to the new message, like previous,  messages will just be copied inline to the new message, like previous,
294  non MIME-savvy versions of gnus would do.  non @acronym{MIME}-savvy versions of Gnus would do.
295    
296    @item message-forward-before-signature
297    @vindex message-forward-before-signature
298    If non-@code{nil}, put forwarded message before signature, else after.
299    
300  @end table  @end table
301    
302    
# Line 296  will be removed before popping up the bu Line 329  will be removed before popping up the bu
329  @samp{^\\(Received\\|Return-Path\\):}.  @samp{^\\(Received\\|Return-Path\\):}.
330    
331    
332    @node Mailing Lists
333    @section Mailing Lists
334    
335    @cindex Mail-Followup-To
336    Sometimes while posting to mailing lists, the poster needs to direct
337    followups to the post to specific places.  The Mail-Followup-To (MFT)
338    was created to enable just this.  Two example scenarios where this is
339    useful:
340    
341    @itemize @bullet
342    @item
343    A mailing list poster can use MFT to express that responses should be
344    sent to just the list, and not the poster as well.  This will happen
345    if the poster is already subscribed to the list.
346    
347    @item
348    A mailing list poster can use MFT to express that responses should be
349    sent to the list and the poster as well.  This will happen if the poster
350    is not subscribed to the list.
351    
352    @item
353    If a message is posted to several mailing lists, MFT may also be used
354    to direct the following discussion to one list only, because
355    discussions that are spread over several lists tend to be fragmented
356    and very difficult to follow.
357    
358    @end itemize
359    
360    Gnus honors the MFT header in other's messages (i.e. while following
361    up to someone else's post) and also provides support for generating
362    sensible MFT headers for outgoing messages as well.
363    
364    @c @menu
365    @c * Honoring an MFT post::        What to do when one already exists
366    @c * Composing with a MFT header:: Creating one from scratch.
367    @c @end menu
368    
369    @c @node Composing with a MFT header
370    @subsection  Composing a correct MFT header automagically
371    
372    The first step in getting Gnus to automagically generate a MFT header
373    in posts you make is to give Gnus a list of the mailing lists
374    addresses you are subscribed to.  You can do this in more than one
375    way.  The following variables would come in handy.
376    
377    @table @code
378    
379    @vindex message-subscribed-addresses
380    @item message-subscribed-addresses
381    This should be a list of addresses the user is subscribed to.  Its
382    default value is @code{nil}.  Example:
383    @lisp
384    (setq message-subscribed-addresses
385          '("ding@@gnus.org" "bing@@noose.org"))
386    @end lisp
387    
388    @vindex message-subscribed-regexps
389    @item message-subscribed-regexps
390    This should be a list of regexps denoting the addresses of mailing
391    lists subscribed to.  Default value is @code{nil}.  Example: If you
392    want to achieve the same result as above:
393    @lisp
394    (setq message-subscribed-regexps
395          '("\\(ding@@gnus\\)\\|\\(bing@@noose\\)\\.org")
396    @end lisp
397    
398    @vindex message-subscribed-address-functions
399    @item message-subscribed-address-functions
400    This can be a list of functions to be called (one at a time!!) to
401    determine the value of MFT headers.  It is advisable that these
402    functions not take any arguments.  Default value is @code{nil}.
403    
404    There is a pre-defined function in Gnus that is a good candidate for
405    this variable.  @code{gnus-find-subscribed-addresses} is a function
406    that returns a list of addresses corresponding to the groups that have
407    the @code{subscribed} (@pxref{Group Parameters, ,Group Parameters,
408    gnus, The Gnus Manual}) group parameter set to a non-@code{nil} value.
409    This is how you would do it.
410    
411    @lisp
412    (setq message-subscribed-address-functions
413          '(gnus-find-subscribed-addresses))
414    @end lisp
415    
416    @vindex message-subscribed-address-file
417    @item message-subscribed-address-file
418    You might be one organised human freak and have a list of addresses of
419    all subscribed mailing lists in a separate file!  Then you can just
420    set this variable to the name of the file and life would be good.
421    
422    @end table
423    
424    You can use one or more of the above variables.  All their values are
425    ``added'' in some way that works :-)
426    
427    Now you are all set.  Just start composing a message as you normally do.
428    And just send it; as always.  Just before the message is sent out, Gnus'
429    MFT generation thingy kicks in and checks if the message already has a
430    MFT field.  If there is one, it is left alone.  (Except if it's empty -
431    in that case, the field is removed and is not replaced with an
432    automatically generated one.  This lets you disable MFT generation on a
433    per-message basis.)  If there is none, then the list of recipient
434    addresses (in the To: and Cc: headers) is checked to see if one of them
435    is a list address you are subscribed to.  If none of them is a list
436    address, then no MFT is generated; otherwise, a MFT is added to the
437    other headers and set to the value of all addresses in To: and Cc:
438    
439    @kindex C-c C-f C-a
440    @findex message-generate-unsubscribed-mail-followup-to
441    @kindex C-c C-f C-m
442    @findex message-goto-mail-followup-to
443    Hm.  ``So'', you ask, ``what if I send an email to a list I am not
444    subscribed to?  I want my MFT to say that I want an extra copy.''  (This
445    is supposed to be interpreted by others the same way as if there were no
446    MFT, but you can use an explicit MFT to override someone else's
447    to-address group parameter.)  The function
448    @code{message-generate-unsubscribed-mail-followup-to} might come in
449    handy.  It is bound to @kbd{C-c C-f C-a} by default.  In any case, you
450    can insert a MFT of your own choice; @kbd{C-c C-f C-m}
451    (@code{message-goto-mail-followup-to}) will help you get started.
452    
453    @c @node Honoring an MFT post
454    @subsection Honoring an MFT post
455    
456    @vindex message-use-mail-followup-to
457    When you followup to a post on a mailing list, and the post has a MFT
458    header, Gnus' action will depend on the value of the variable
459    @code{message-use-mail-followup-to}.  This variable can be one of:
460    
461    @table @code
462    @item use
463     Always honor MFTs.  The To: and Cc: headers in your followup will be
464     derived from the MFT header of the original post.  This is the default.
465    
466    @item nil
467     Always dishonor MFTs (just ignore the darned thing)
468    
469    @item ask
470    Gnus will prompt you for an action.
471    
472    @end table
473    
474    It is considered good netiquette to honor MFT, as it is assumed the
475    fellow who posted a message knows where the followups need to go
476    better than you do.
477    
478  @node Commands  @node Commands
479  @chapter Commands  @chapter Commands
480    
481  @menu  @menu
482  * Buffer Entry::        Commands after entering a Message buffer.  * Buffer Entry::        Commands after entering a Message buffer.
483  * Header Commands::     Commands for moving to headers.  * Header Commands::     Commands for moving headers or changing headers.
484  * Movement::            Moving around in message buffers.  * Movement::            Moving around in message buffers.
485  * Insertion::           Inserting things into message buffers.  * Insertion::           Inserting things into message buffers.
486  * MIME::                @sc{mime} considerations.  * MIME::                @acronym{MIME} considerations.
487    * IDNA::                Non-@acronym{ASCII} domain name considerations.
488    * Security::            Signing and encrypting messages.
489  * Various Commands::    Various things.  * Various Commands::    Various things.
490  * Sending::             Actually sending the message.  * Sending::             Actually sending the message.
491  * Mail Aliases::        How to use mail aliases.  * Mail Aliases::        How to use mail aliases.
# Line 330  times, you will get back the un-edited m Line 511  times, you will get back the un-edited m
511  @node Header Commands  @node Header Commands
512  @section Header Commands  @section Header Commands
513    
514  All these commands move to the header in question.  If it doesn't exist,  @subsection Commands for moving to headers
515  it will be inserted.  
516    These following commands move to the header in question.  If it doesn't
517    exist, it will be inserted.
518    
519  @table @kbd  @table @kbd
520    
521  @item C-c ?  @item C-c ?
522  @kindex C-c ?  @kindex C-c ?
523  @findex message-goto-to  @findex describe-mode
524  Describe the message mode.  Describe the message mode.
525    
526  @item C-c C-f C-t  @item C-c C-f C-t
# Line 345  Describe the message mode. Line 528  Describe the message mode.
528  @findex message-goto-to  @findex message-goto-to
529  Go to the @code{To} header (@code{message-goto-to}).  Go to the @code{To} header (@code{message-goto-to}).
530    
531    @item C-c C-f C-o
532    @kindex C-c C-f C-o
533    @findex message-goto-from
534    Go to the @code{From} header (@code{message-goto-from}).  (The ``o''
535    in the key binding is for Originator.)
536    
537  @item C-c C-f C-b  @item C-c C-f C-b
538  @kindex C-c C-f C-b  @kindex C-c C-f C-b
539  @findex message-goto-bcc  @findex message-goto-bcc
540  Go to the @code{Bcc} header (@code{message-goto-bcc}).  Go to the @code{Bcc} header (@code{message-goto-bcc}).
541    
542  @item C-c C-f C-w  @item C-c C-f C-f
543  @kindex C-c C-f C-w  @kindex C-c C-f C-f
544  @findex message-goto-fcc  @findex message-goto-fcc
545  Go to the @code{Fcc} header (@code{message-goto-fcc}).  Go to the @code{Fcc} header (@code{message-goto-fcc}).
546    
# Line 380  Go to the @code{Newsgroups} header (@cod Line 569  Go to the @code{Newsgroups} header (@cod
569  @findex message-goto-distribution  @findex message-goto-distribution
570  Go to the @code{Distribution} header (@code{message-goto-distribution}).  Go to the @code{Distribution} header (@code{message-goto-distribution}).
571    
572  @item C-c C-f C-f  @item C-c C-f C-o
573  @kindex C-c C-f C-f  @kindex C-c C-f C-o
574  @findex message-goto-followup-to  @findex message-goto-followup-to
575  Go to the @code{Followup-To} header (@code{message-goto-followup-to}).  Go to the @code{Followup-To} header (@code{message-goto-followup-to}).
576    
# Line 395  Go to the @code{Keywords} header (@code{ Line 584  Go to the @code{Keywords} header (@code{
584  @findex message-goto-summary  @findex message-goto-summary
585  Go to the @code{Summary} header (@code{message-goto-summary}).  Go to the @code{Summary} header (@code{message-goto-summary}).
586    
587    @item C-c C-f C-i
588    @kindex C-c C-f C-i
589    @findex message-insert-or-toggle-importance
590    This inserts the @samp{Importance:} header with a value of
591    @samp{high}.  This header is used to signal the importance of the
592    message to the receiver.  If the header is already present in the
593    buffer, it cycles between the three valid values according to RFC
594    1376: @samp{low}, @samp{normal} and @samp{high}.
595    
596    @item C-c C-f C-a
597    @kindex C-c C-f C-a
598    @findex message-generate-unsubscribed-mail-followup-to
599    Insert a reasonable @samp{Mail-Followup-To:} header
600    (@pxref{Mailing Lists}) in a post to an
601    unsubscribed list.  When making original posts to a mailing list you are
602    not subscribed to, you have to type in a @samp{Mail-Followup-To:} header
603    by hand.  The contents, usually, are the addresses of the list and your
604    own address.  This function inserts such a header automatically.  It
605    fetches the contents of the @samp{To:} header in the current mail
606    buffer, and appends the current @code{user-mail-address}.
607    
608    If the optional argument @code{include-cc} is non-@code{nil}, the
609    addresses in the @samp{Cc:} header are also put into the
610    @samp{Mail-Followup-To:} header.
611    
612    @end table
613    
614    @subsection  Commands to change headers
615    
616    @table @kbd
617    
618    @item C-c C-o
619    @kindex C-c C-o
620    @findex message-sort-headers
621    @vindex message-header-format-alist
622    Sort headers according to @code{message-header-format-alist}
623    (@code{message-sort-headers}).
624    
625    @item C-c C-t
626    @kindex C-c C-t
627    @findex message-insert-to
628    Insert a @code{To} header that contains the @code{Reply-To} or
629    @code{From} header of the message you're following up
630    (@code{message-insert-to}).
631    
632    @item C-c C-n
633    @kindex C-c C-n
634    @findex message-insert-newsgroups
635    Insert a @code{Newsgroups} header that reflects the @code{Followup-To}
636    or @code{Newsgroups} header of the article you're replying to
637    (@code{message-insert-newsgroups}).
638    
639    @item C-c C-l
640    @kindex C-c C-l
641    @findex message-to-list-only
642    Send a message to the list only.  Remove all addresses but the list
643    address from @code{To:} and @code{Cc:} headers.
644    
645    @item C-c M-n
646    @kindex C-c M-n
647    @findex message-insert-disposition-notification-to
648    Insert a request for a disposition
649    notification.  (@code{message-insert-disposition-notification-to}).
650    This means that if the recipient support RFC 2298 she might send you a
651    notification that she received the message.
652    
653    @item M-x message-insert-importance-high
654    @kindex M-x message-insert-importance-high
655    @findex message-insert-importance-high
656    @cindex Importance
657    Insert an @samp{Importance} header with a value of @samp{high},
658    deleting headers if necessary.
659    
660    @item M-x message-insert-importance-low
661    @kindex M-x message-insert-importance-low
662    @findex message-insert-importance-low
663    @cindex Importance
664    Insert an @samp{Importance} header with a value of @samp{low}, deleting
665    headers if necessary.
666    
667    @item C-c C-f s
668    @kindex C-c C-f s
669    @findex message-change-subject
670    @cindex Subject
671    Change the current @samp{Subject} header.  Ask for new @samp{Subject}
672    header and append @samp{(was: <Old Subject>)}.  The old subject can be
673    stripped on replying, see @code{message-subject-trailing-was-query}
674    (@pxref{Message Headers}).
675    
676    @item C-c C-f x
677    @kindex C-c C-f x
678    @findex message-cross-post-followup-to
679    @vindex message-cross-post-default
680    @cindex X-Post
681    @cindex cross-post
682    Ask for an additional @samp{Newsgroups} and @samp{FollowUp-To} for a
683    cross-post.  @code{message-cross-post-followup-to} mangles
684    @samp{FollowUp-To} and @samp{Newsgroups} header to point to group.
685    If @code{message-cross-post-default} is @code{nil} or if called with a
686    prefix-argument @samp{Follow-Up} is set, but the message is not
687    cross-posted.
688    
689    @item C-c C-f t
690    @kindex C-c C-f t
691    @findex message-reduce-to-to-cc
692    Replace contents of @samp{To} header with contents of @samp{Cc} or
693    @samp{Bcc} header.
694    
695    @item C-c C-f w
696    @kindex C-c C-f w
697    @findex message-insert-wide-reply
698    Insert @samp{To} and @samp{Cc} headers as if you were doing a wide
699    reply.
700    
701    @item C-c C-f a
702    @kindex C-c C-f a
703    @findex message-add-archive-header
704    @vindex message-archive-header
705    @vindex message-archive-note
706    @cindex X-No-Archive
707    Insert @samp{X-No-Archive: Yes} in the header and a note in the body.
708    The header and the note can be customized using
709    @code{message-archive-header} and @code{message-archive-note}.  When
710    called with a prefix argument, ask for a text to insert.  If you don't
711    want the note in the body, set @code{message-archive-note} to
712    @code{nil}.
713    
714  @end table  @end table
715    
716    
# Line 413  Move to the beginning of the body of the Line 729  Move to the beginning of the body of the
729  @findex message-goto-signature  @findex message-goto-signature
730  Move to the signature of the message (@code{message-goto-signature}).  Move to the signature of the message (@code{message-goto-signature}).
731    
732    @item C-a
733    @kindex C-a
734    @findex message-beginning-of-line
735    @vindex message-beginning-of-line
736    If at beginning of header value, go to beginning of line, else go to
737    beginning of header value.  (The header value comes after the header
738    name and the colon.)  This behaviour can be disabled by toggling
739    the variable @code{message-beginning-of-line}.
740    
741  @end table  @end table
742    
743    
# Line 453  Insert a signature at the end of the buf Line 778  Insert a signature at the end of the buf
778  @findex message-insert-headers  @findex message-insert-headers
779  Insert the message headers (@code{message-insert-headers}).  Insert the message headers (@code{message-insert-headers}).
780    
781    @item C-c M-m
782    @kindex C-c M-m
783    @findex message-mark-inserted-region
784    Mark some region in the current article with enclosing tags.
785    See @code{message-mark-insert-begin} and @code{message-mark-insert-end}.
786    
787    @item C-c M-f
788    @kindex C-c M-f
789    @findex message-mark-insert-file
790    Insert a file in the current article with enclosing tags.
791    See @code{message-mark-insert-begin} and @code{message-mark-insert-end}.
792    
793  @end table  @end table
794    
 @table @code  
 @item message-ignored-cited-headers  
 @vindex message-ignored-cited-headers  
 All headers that match this regexp will be removed from yanked  
 messages.  The default is @samp{.}, which means that all headers will be  
 removed.  
795    
796  @item message-citation-line-function  @node MIME
797  @vindex message-citation-line-function  @section MIME
798  Function called to insert the citation line.  The default is  @cindex MML
799  @code{message-insert-citation-line}, which will lead to citation lines  @cindex MIME
800  that look like:  @cindex multipart
801    @cindex attachment
802    
803  @example  Message is a @acronym{MIME}-compliant posting agent.  The user generally
804  Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:  doesn't have to do anything to make the @acronym{MIME} happen---Message will
805  @end example  automatically add the @code{Content-Type} and
806    @code{Content-Transfer-Encoding} headers.
807    
808  Point will be at the beginning of the body of the message when this  The most typical thing users want to use the multipart things in
809  function is called.  @acronym{MIME} for is to add ``attachments'' to mail they send out.  This can
810    be done with the @kbd{C-c C-a} command, which will prompt for a file
811    name and a @acronym{MIME} type.
812    
813  @item message-yank-prefix  You can also create arbitrarily complex multiparts using the @acronym{MML}
814  @vindex message-yank-prefix  language (@pxref{Composing, , Composing, emacs-mime, The Emacs MIME
815  @cindex yanking  Manual}).
 @cindex quoting  
 When you are replying to or following up an article, you normally want  
 to quote the person you are answering.  Inserting quoted text is done by  
 @dfn{yanking}, and each quoted line you yank will have  
 @code{message-yank-prefix} prepended to it.  The default is @samp{> }.  
816    
817  @item message-indentation-spaces  @node IDNA
818  @vindex message-indentation-spaces  @section IDNA
819  Number of spaces to indent yanked messages.  @cindex IDNA
820    @cindex internationalized domain names
821    @cindex non-ascii domain names
822    
823    Message is a @acronym{IDNA}-compliant posting agent.  The user
824    generally doesn't have to do anything to make the @acronym{IDNA}
825    happen---Message will encode non-@acronym{ASCII} domain names in @code{From},
826    @code{To}, and @code{Cc} headers automatically.
827    
828    Until @acronym{IDNA} becomes more well known, Message queries you
829    whether @acronym{IDNA} encoding of the domain name really should
830    occur.  Some users might not be aware that domain names can contain
831    non-@acronym{ASCII} now, so this gives them a safety net if they accidently
832    typed a non-@acronym{ASCII} domain name.
833    
834    @vindex message-use-idna
835    The @code{message-use-idna} variable control whether @acronym{IDNA} is
836    used.  If the variable is @code{nil} no @acronym{IDNA} encoding will
837    ever happen, if it is set to the symbol @code{ask} the user will be
838    queried (the default), and if set to @code{t} @acronym{IDNA} encoding
839    happens automatically.
840    
841    @findex message-idna-to-ascii-rhs
842    If you want to experiment with the @acronym{IDNA} encoding, you can
843    invoke @kbd{M-x message-idna-to-ascii-rhs RET} in the message buffer
844    to have the non-@acronym{ASCII} domain names encoded while you edit the message.
845    
846    Note that you must have @uref{http://www.gnu.org/software/libidn/, GNU
847    Libidn} installed in order to use this functionality.
848    
849    @node Security
850    @section Security
851    @cindex Security
852    @cindex S/MIME
853    @cindex PGP
854    @cindex PGP/MIME
855    @cindex sign
856    @cindex encrypt
857    @cindex secure
858    
859    Using the @acronym{MML} language, Message is able to create digitally
860    signed and digitally encrypted messages.  Message (or rather
861    @acronym{MML}) currently support @acronym{PGP} (RFC 1991),
862    @acronym{PGP/MIME} (RFC 2015/3156) and @acronym{S/MIME}.  Instructing
863    @acronym{MML} to perform security operations on a @acronym{MIME} part is
864    done using the @kbd{C-c C-m s} key map for signing and the @kbd{C-c C-m
865    c} key map for encryption, as follows.
866    
867  @item message-cite-function  @table @kbd
 @vindex message-cite-function  
 @findex message-cite-original  
 @findex sc-cite-original  
 @findex message-cite-original-without-signature  
 @cindex Supercite  
 Function for citing an original message.  The default is  
 @code{message-cite-original}, which simply inserts the original message  
 and prepends @samp{> } to each line.  
 @code{message-cite-original-without-signature} does the same, but elides  
 the signature.  You can also set it to @code{sc-cite-original} to use  
 Supercite.  
868    
869  @item message-indent-citation-function  @item C-c C-m s s
870  @vindex message-indent-citation-function  @kindex C-c C-m s s
871  Function for modifying a citation just inserted in the mail buffer.  @findex mml-secure-message-sign-smime
 This can also be a list of functions.  Each function can find the  
 citation between @code{(point)} and @code{(mark t)}.  And each function  
 should leave point and mark around the citation text as modified.  
872    
873  @item message-signature  Digitally sign current message using @acronym{S/MIME}.
 @vindex message-signature  
 String to be inserted at the end of the message buffer.  If @code{t}  
 (which is the default), the @code{message-signature-file} file will be  
 inserted instead.  If a function, the result from the function will be  
 used instead.  If a form, the result from the form will be used instead.  
 If this variable is @code{nil}, no signature will be inserted at all.  
874    
875  @item message-signature-file  @item C-c C-m s o
876  @vindex message-signature-file  @kindex C-c C-m s o
877  If non-@code{nil} the name of a file containing the signature to be  @findex mml-secure-message-sign-pgp
 inserted at the end of the buffer.  This is ignored if the file  
 doesn't exist.  The default is @samp{~/.signature}.  
878    
879  @end table  Digitally sign current message using @acronym{PGP}.
880    
881  Note that RFC1036bis says that a signature should be preceded by the three  @item C-c C-m s p
882  characters @samp{-- } on a line by themselves.  This is to make it  @kindex C-c C-m s p
883  easier for the recipient to automatically recognize and process the  @findex mml-secure-message-sign-pgpmime
 signature.  So don't remove those characters, even though you might feel  
 that they ruin your beautiful design, like, totally.  
884    
885  Also note that no signature should be more than four lines long.  Digitally sign current message using @acronym{PGP/MIME}.
 Including ASCII graphics is an efficient way to get everybody to believe  
 that you are silly and have nothing important to say.  
886    
887    @item C-c C-m c s
888    @kindex C-c C-m c s
889    @findex mml-secure-message-encrypt-smime
890    
891  @node MIME  Digitally encrypt current message using @acronym{S/MIME}.
 @section MIME  
 @cindex MML  
 @cindex MIME  
 @cindex multipart  
 @cindex attachment  
892    
893  Message is a @sc{mime}-compliant posting agent.  The user generally  @item C-c C-m c o
894  doesn't have to do anything to make the @sc{mime} happen---Message will  @kindex C-c C-m c o
895  automatically add the @code{Content-Type} and  @findex mml-secure-message-encrypt-pgp
 @code{Content-Transfer-Encoding} headers.  
896    
897  The most typical thing users want to use the multipart things in  Digitally encrypt current message using @acronym{PGP}.
 @sc{mime} for is to add ``attachments'' to mail they send out.  This can  
 be done with the @code{C-c C-a} command, which will prompt for a file  
 name and a @sc{mime} type.  
898    
899  You can also create arbitrarily complex multiparts using the MML  @item C-c C-m c p
900  language (@pxref{Composing, , Composing, emacs-mime, The Emacs MIME  @kindex C-c C-m c p
901  Manual}).  @findex mml-secure-message-encrypt-pgpmime
902    
903    Digitally encrypt current message using @acronym{PGP/MIME}.
904    
905    @item C-c C-m C-n
906    @kindex C-c C-m C-n
907    @findex mml-unsecure-message
908    Remove security related @acronym{MML} tags from message.
909    
910    @end table
911    
912    These commands do not immediately sign or encrypt the message, they
913    merely insert the proper @acronym{MML} secure tag to instruct the
914    @acronym{MML} engine to perform that operation when the message is
915    actually sent.  They may perform other operations too, such as locating
916    and retrieving a @acronym{S/MIME} certificate of the person you wish to
917    send encrypted mail to.  When the mml parsing engine converts your
918    @acronym{MML} into a properly encoded @acronym{MIME} message, the secure
919    tag will be replaced with either a part or a multipart tag.  If your
920    message contains other mml parts, a multipart tag will be used; if no
921    other parts are present in your message a single part tag will be used.
922    This way, message mode will do the Right Thing (TM) with
923    signed/encrypted multipart messages.
924    
925    Since signing and especially encryption often is used when sensitive
926    information is sent, you may want to have some way to ensure that your
927    mail is actually signed or encrypted.  After invoking the above
928    sign/encrypt commands, it is possible to preview the raw article by
929    using @kbd{C-u C-c RET P} (@code{mml-preview}).  Then you can
930    verify that your long rant about what your ex-significant other or
931    whomever actually did with that funny looking person at that strange
932    party the other night, actually will be sent encrypted.
933    
934    @emph{Note!}  Neither @acronym{PGP/MIME} nor @acronym{S/MIME} encrypt/signs
935    RFC822 headers.  They only operate on the @acronym{MIME} object.  Keep this
936    in mind before sending mail with a sensitive Subject line.
937    
938    By default, when encrypting a message, Gnus will use the
939    ``signencrypt'' mode, which means the message is both signed and
940    encrypted.  If you would like to disable this for a particular
941    message, give the @code{mml-secure-message-encrypt-*} command a prefix
942    argument, e.g., @kbd{C-u C-c C-m c p}.
943    
944    Actually using the security commands above is not very difficult.  At
945    least not compared with making sure all involved programs talk with each
946    other properly.  Thus, we now describe what external libraries or
947    programs are required to make things work, and some small general hints.
948    
949    @subsection Using S/MIME
950    
951    @emph{Note!}  This section assume you have a basic familiarity with
952    modern cryptography, @acronym{S/MIME}, various PKCS standards, OpenSSL and
953    so on.
954    
955    The @acronym{S/MIME} support in Message (and @acronym{MML}) require
956    OpenSSL.  OpenSSL performs the actual @acronym{S/MIME} sign/encrypt
957    operations.  OpenSSL can be found at @uref{http://www.openssl.org/}.
958    OpenSSL 0.9.6 and later should work.  Version 0.9.5a cannot extract mail
959    addresses from certificates, and it insert a spurious CR character into
960    @acronym{MIME} separators so you may wish to avoid it if you would like
961    to avoid being regarded as someone who send strange mail.  (Although by
962    sending @acronym{S/MIME} messages you've probably already lost that
963    contest.)
964    
965    To be able to send encrypted mail, a personal certificate is not
966    required.  Message (@acronym{MML}) need a certificate for the person to whom you
967    wish to communicate with though.  You're asked for this when you type
968    @kbd{C-c C-m c s}.  Currently there are two ways to retrieve this
969    certificate, from a local file or from DNS.  If you chose a local
970    file, it need to contain a X.509 certificate in @acronym{PEM} format.
971    If you chose DNS, you're asked for the domain name where the
972    certificate is stored, the default is a good guess.  To my belief,
973    Message (@acronym{MML}) is the first mail agent in the world to support
974    retrieving @acronym{S/MIME} certificates from DNS, so you're not
975    likely to find very many certificates out there.  At least there
976    should be one, stored at the domain @code{simon.josefsson.org}.  LDAP
977    is a more popular method of distributing certificates, support for it
978    is planned.  (Meanwhile, you can use @code{ldapsearch} from the
979    command line to retrieve a certificate into a file and use it.)
980    
981    As for signing messages, OpenSSL can't perform signing operations
982    without some kind of configuration.  Especially, you need to tell it
983    where your private key and your certificate is stored.  @acronym{MML}
984    uses an Emacs interface to OpenSSL, aptly named @code{smime.el}, and it
985    contain a @code{custom} group used for this configuration.  So, try
986    @kbd{M-x customize-group RET smime RET} and look around.
987    
988    Currently there is no support for talking to a CA (or RA) to create
989    your own certificate.  None is planned either.  You need to do this
990    manually with OpenSSL or using some other program.  I used Netscape
991    and got a free @acronym{S/MIME} certificate from one of the big CA's on the
992    net.  Netscape is able to export your private key and certificate in
993    PKCS #12 format.  Use OpenSSL to convert this into a plain X.509
994    certificate in PEM format as follows.
995    
996    @example
997    $ openssl pkcs12 -in ns.p12 -clcerts -nodes > key+cert.pem
998    @end example
999    
1000    The @file{key+cert.pem} file should be pointed to from the
1001    @code{smime-keys} variable.  You should now be able to send signed mail.
1002    
1003    @emph{Note!}  Your private key is now stored unencrypted in the file,
1004    so take care in handling it.  Storing encrypted keys on the disk are
1005    supported, and Gnus will ask you for a passphrase before invoking
1006    OpenSSL.  Read the OpenSSL documentation for how to achieve this.  If
1007    you use unencrypted keys (e.g., if they are on a secure storage, or if
1008    you are on a secure single user machine) simply press @code{RET} at
1009    the passphrase prompt.
1010    
1011    @subsection Using PGP/MIME
1012    
1013    @acronym{PGP/MIME} requires an external OpenPGP implementation, such
1014    as @uref{http://www.gnupg.org/, GNU Privacy Guard}.  Pre-OpenPGP
1015    implementations such as PGP 2.x and PGP 5.x are also supported.  One
1016    Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG,
1017    pgg, PGG Manual}), is included, but Mailcrypt and Florian Weimer's
1018    @code{gpg.el} are also supported.
1019    
1020    @vindex gpg-temp-directory
1021    Note, if you are using the @code{gpg.el} you must make sure that the
1022    directory specified by @code{gpg-temp-directory} have permissions
1023    0700.
1024    
1025    Creating your own key is described in detail in the documentation of
1026    your PGP implementation, so we refer to it.
1027    
1028    If you have imported your old PGP 2.x key into GnuPG, and want to send
1029    signed and encrypted messages to your fellow PGP 2.x users, you'll
1030    discover that the receiver cannot understand what you send. One
1031    solution is to use PGP 2.x instead (i.e., if you use @code{pgg}, set
1032    @code{pgg-default-scheme} to @code{pgp}).  If you do want to use
1033    GnuPG, you can use a compatibility script called @code{gpg-2comp}
1034    available from
1035    @uref{http://muppet.faveve.uni-stuttgart.de/~gero/gpg-2comp/}.  You
1036    could also convince your fellow PGP 2.x users to convert to GnuPG.
1037    @vindex mml-signencrypt-style-alist
1038    As a final workaround, you can make the sign and encryption work in
1039    two steps; separately sign, then encrypt a message.  If you would like
1040    to change this behavior you can customize the
1041    @code{mml-signencrypt-style-alist} variable.  For example:
1042    
1043    @lisp
1044    (setq mml-signencrypt-style-alist '(("smime" separate)
1045                                        ("pgp" separate)
1046                                        ("pgpauto" separate)
1047                                        ("pgpmime" separate)))
1048    @end lisp
1049    
1050    This causes to sign and encrypt in two passes, thus generating a
1051    message that can be understood by PGP version 2.
1052    
1053    (Refer to @uref{http://www.gnupg.org/gph/en/pgp2x.html} for more
1054    information about the problem.)
1055    
1056  @node Various Commands  @node Various Commands
1057  @section Various Commands  @section Various Commands
# Line 573  many places to rotate the text.  The def Line 1069  many places to rotate the text.  The def
1069  @item C-c C-e  @item C-c C-e
1070  @kindex C-c C-e  @kindex C-c C-e
1071  @findex message-elide-region  @findex message-elide-region
1072    @vindex message-elide-ellipsis
1073  Elide the text between point and mark (@code{message-elide-region}).  Elide the text between point and mark (@code{message-elide-region}).
1074  The text is killed and replaced with the contents of the variable  The text is killed and replaced with the contents of the variable
1075  @code{message-elide-ellipsis}. The default value is to use an ellipsis  @code{message-elide-ellipsis}.  The default value is to use an ellipsis
1076  (@samp{[...]}).  (@samp{[...]}).
1077    
1078  @item C-c C-z  @item C-c C-z
# Line 592  Delete all text in the body of the messa Line 1089  Delete all text in the body of the messa
1089    
1090  @item M-RET  @item M-RET
1091  @kindex M-RET  @kindex M-RET
1092  @kindex message-newline-and-reformat  @findex message-newline-and-reformat
1093  Insert four newlines, and then reformat if inside quoted text.  Insert four newlines, and then reformat if inside quoted text.
1094    
1095  Here's an example:  Here's an example:
# Line 613  If point is before @samp{And} and you pr Line 1110  If point is before @samp{And} and you pr
1110    
1111  @samp{*} says where point will be placed.  @samp{*} says where point will be placed.
1112    
 @item C-c C-t  
 @kindex C-c C-t  
 @findex message-insert-to  
 Insert a @code{To} header that contains the @code{Reply-To} or  
 @code{From} header of the message you're following up  
 (@code{message-insert-to}).  
   
 @item C-c C-n  
 @kindex C-c C-n  
 @findex message-insert-newsgroups  
 Insert a @code{Newsgroups} header that reflects the @code{Followup-To}  
 or @code{Newsgroups} header of the article you're replying to  
 (@code{message-insert-newsgroups}).  
   
1113  @item C-c M-r  @item C-c M-r
1114  @kindex C-c M-r  @kindex C-c M-r
1115  @findex message-rename-buffer  @findex message-rename-buffer
1116  Rename the buffer (@code{message-rename-buffer}).  If given a prefix,  Rename the buffer (@code{message-rename-buffer}).  If given a prefix,
1117  prompt for a new buffer name.  prompt for a new buffer name.
1118    
1119    @item TAB
1120    @kindex TAB
1121    @findex message-tab
1122    @vindex message-tab-body-function
1123    If non-@code{nil} execute the function specified in
1124    @code{message-tab-body-function}.  Otherwise use the function bound to
1125    @kbd{TAB} in @code{text-mode-map} or @code{global-map}.
1126    
1127  @end table  @end table
1128    
1129    
# Line 715  controlled by the @code{ispell-message-d Line 1206  controlled by the @code{ispell-message-d
1206  @lisp  @lisp
1207  (setq ispell-message-dictionary-alist  (setq ispell-message-dictionary-alist
1208        '(("^Newsgroups:.*\\bde\\." . "deutsch8")        '(("^Newsgroups:.*\\bde\\." . "deutsch8")
1209          (".*" . "default")))          (".*" . "default")))
1210  @end lisp  @end lisp
1211    
1212  @code{ispell} depends on having the external @samp{ispell} command  @code{ispell} depends on having the external @samp{ispell} command
# Line 747  installed. Line 1238  installed.
1238  * Mail Variables::              Other mail variables.  * Mail Variables::              Other mail variables.
1239  * News Headers::                Customizing news headers.  * News Headers::                Customizing news headers.
1240  * News Variables::              Other news variables.  * News Variables::              Other news variables.
1241    * Insertion Variables::         Customizing how things are inserted.
1242  * Various Message Variables::   Other message variables.  * Various Message Variables::   Other message variables.
1243  * Sending Variables::           Variables for sending.  * Sending Variables::           Variables for sending.
1244  * Message Buffers::             How Message names its buffers.  * Message Buffers::             How Message names its buffers.
# Line 767  look sufficiently similar. Line 1259  look sufficiently similar.
1259    
1260  @item message-generate-headers-first  @item message-generate-headers-first
1261  @vindex message-generate-headers-first  @vindex message-generate-headers-first
1262  If non-@code{nil}, generate all required headers before starting to  If @code{t}, generate all required headers before starting to
1263  compose the message.  compose the message.  This can also be a list of headers to generate:
1264    
1265    @lisp
1266    (setq message-generate-headers-first
1267          '(References))
1268    @end lisp
1269    
1270  The variables @code{message-required-mail-headers} and  @vindex message-required-headers
1271  @code{message-required-news-headers} specify which headers are required.  The variables @code{message-required-headers},
1272    @code{message-required-mail-headers} and
1273    @code{message-required-news-headers} specify which headers are
1274    required.
1275    
1276    Note that some headers will be removed and re-generated before posting,
1277    because of the variable @code{message-deletable-headers} (see below).
1278    
1279    @item message-draft-headers
1280    @vindex message-draft-headers
1281    When running Message from Gnus, the message buffers are associated
1282    with a draft group.  @code{message-draft-headers} says which headers
1283    should be generated when a draft is written to the draft group.
1284    
1285  @item message-from-style  @item message-from-style
1286  @vindex message-from-style  @vindex message-from-style
# Line 814  buffers. Line 1323  buffers.
1323    
1324  @item message-subject-re-regexp  @item message-subject-re-regexp
1325  @vindex message-subject-re-regexp  @vindex message-subject-re-regexp
1326    @cindex Aw
1327    @cindex Sv
1328    @cindex Re
1329  Responses to messages have subjects that start with @samp{Re: }.  This  Responses to messages have subjects that start with @samp{Re: }.  This
1330  is @emph{not} an abbreviation of the English word ``response'', but is  is @emph{not} an abbreviation of the English word ``response'', but is
1331  Latin, and means ``in response to''.  Some illiterate nincompoops have  Latin, and means ``in response to''.  Some illiterate nincompoops have
# Line 824  have to deal with users that use these e Line 1336  have to deal with users that use these e
1336  set this variable to a regexp that matches these prefixes.  Myself, I  set this variable to a regexp that matches these prefixes.  Myself, I
1337  just throw away non-compliant mail.  just throw away non-compliant mail.
1338    
1339    Here's an example of a value to deal with these headers when
1340    responding to a message:
1341    
1342    @lisp
1343    (setq message-subject-re-regexp
1344          (concat
1345           "^[ \t]*"
1346             "\\("
1347               "\\("
1348                 "[Aa][Nn][Tt][Ww]\\.?\\|"     ; antw
1349                 "[Aa][Ww]\\|"                 ; aw
1350                 "[Ff][Ww][Dd]?\\|"            ; fwd
1351                 "[Oo][Dd][Pp]\\|"             ; odp
1352                 "[Rr][Ee]\\|"                 ; re
1353                 "[Rr][\311\351][Ff]\\.?\\|"   ; ref
1354                 "[Ss][Vv]"                    ; sv
1355               "\\)"
1356               "\\(\\[[0-9]*\\]\\)"
1357               "*:[ \t]*"
1358             "\\)"
1359           "*[ \t]*"
1360           ))
1361    @end lisp
1362    
1363    @item message-subject-trailing-was-query
1364    @vindex message-subject-trailing-was-query
1365    @vindex message-subject-trailing-was-ask-regexp
1366    @vindex message-subject-trailing-was-regexp
1367    Controls what to do with trailing @samp{(was: <old subject>)} in subject
1368    lines.  If @code{nil}, leave the subject unchanged.  If it is the symbol
1369    @code{ask}, query the user what do do.  In this case, the subject is
1370    matched against @code{message-subject-trailing-was-ask-regexp}.  If
1371    @code{message-subject-trailing-was-query} is t, always strip the
1372    trailing old subject.  In this case,
1373    @code{message-subject-trailing-was-regexp} is used.
1374    
1375  @item message-alternative-emails  @item message-alternative-emails
1376  @vindex message-alternative-emails  @vindex message-alternative-emails
1377  A regexp to match the alternative email addresses.  The first matched  A regexp to match the alternative email addresses.  The first matched
1378  address (not primary one) is used in the @code{From} field.  address (not primary one) is used in the @code{From} field.
1379    
1380    @item message-allow-no-recipients
1381    @vindex message-allow-no-recipients
1382    Specifies what to do when there are no recipients other than
1383    @code{Gcc} or @code{Fcc}.  If it is @code{always}, the posting is
1384    allowed.  If it is @code{never}, the posting is not allowed.  If it is
1385    @code{ask} (the default), you are prompted.
1386    
1387    @item message-hidden-headers
1388    @vindex message-hidden-headers
1389    A regexp, a list of regexps, or a list where the first element is
1390    @code{not} and the rest are regexps.  It says which headers to keep
1391    hidden when composing a message.
1392    
1393    @lisp
1394    (setq message-hidden-headers
1395          '(not "From" "Subject" "To" "Cc" "Newsgroups"))
1396    @end lisp
1397    
1398    @item message-header-synonyms
1399    @vindex message-header-synonyms
1400    A list of lists of header synonyms.  E.g., if this list contains a
1401    member list with elements @code{Cc} and @code{To}, then
1402    @code{message-carefully-insert-headers} will not insert a @code{To}
1403    header when the message is already @code{Cc}ed to the recipient.
1404    
1405  @end table  @end table
1406    
1407    
# Line 845  address (not primary one) is used in the Line 1418  address (not primary one) is used in the
1418  @item message-ignored-mail-headers  @item message-ignored-mail-headers
1419  @vindex message-ignored-mail-headers  @vindex message-ignored-mail-headers
1420  Regexp of headers to be removed before mailing.  The default is  Regexp of headers to be removed before mailing.  The default is
1421  @samp{^[GF]cc:\|^Resent-Fcc:\|^Xref:}.  @samp{^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:}.
1422    
1423  @item message-default-mail-headers  @item message-default-mail-headers
1424  @vindex message-default-mail-headers  @vindex message-default-mail-headers
# Line 861  buffers that are initialized as mail. Line 1434  buffers that are initialized as mail.
1434  @table @code  @table @code
1435  @item message-send-mail-function  @item message-send-mail-function
1436  @vindex message-send-mail-function  @vindex message-send-mail-function
1437    @findex message-send-mail-with-sendmail
1438    @findex message-send-mail-with-mh
1439    @findex message-send-mail-with-qmail
1440    @findex message-smtpmail-send-it
1441    @findex smtpmail-send-it
1442    @findex feedmail-send-it
1443  Function used to send the current buffer as mail.  The default is  Function used to send the current buffer as mail.  The default is
1444  @code{message-send-mail-with-sendmail}.   If you prefer using MH  @code{message-send-mail-with-sendmail}.  Other valid values include
1445  instead, set this variable to @code{message-send-mail-with-mh}.  @code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail},
1446    @code{message-smtpmail-send-it}, @code{smtpmail-send-it} and
1447    @code{feedmail-send-it}.
1448    
1449  @item message-mh-deletable-headers  @item message-mh-deletable-headers
1450  @vindex message-mh-deletable-headers  @vindex message-mh-deletable-headers
# Line 873  the default), these headers will be remo Line 1454  the default), these headers will be remo
1454  messages via MH.  Set it to @code{nil} if your MH can handle these  messages via MH.  Set it to @code{nil} if your MH can handle these
1455  headers.  headers.
1456    
1457    @item message-qmail-inject-program
1458    @vindex message-qmail-inject-program
1459    @cindex qmail
1460    Location of the qmail-inject program.
1461    
1462    @item message-qmail-inject-args
1463    @vindex message-qmail-inject-args
1464    Arguments passed to qmail-inject programs.
1465    This should be a list of strings, one string for each argument.  It
1466    may also be a function.
1467    
1468    For e.g., if you wish to set the envelope sender address so that bounces
1469    go to the right place or to deal with listserv's usage of that address, you
1470    might set this variable to @code{'("-f" "you@@some.where")}.
1471    
1472    @item message-sendmail-f-is-evil
1473    @vindex message-sendmail-f-is-evil
1474    @cindex sendmail
1475    Non-@code{nil} means don't add @samp{-f username} to the sendmail
1476    command line.  Doing so would be even more evil than leaving it out.
1477    
1478    @item message-sendmail-envelope-from
1479    @vindex message-sendmail-envelope-from
1480    When @code{message-sendmail-f-is-evil} is @code{nil}, this specifies
1481    the address to use in the @acronym{SMTP} envelope.  If it is
1482    @code{nil}, use @code{user-mail-address}.  If it is the symbol
1483    @code{header}, use the @samp{From} header of the message.
1484    
1485    @item message-mailer-swallows-blank-line
1486    @vindex message-mailer-swallows-blank-line
1487    Set this to non-@code{nil} if the system's mailer runs the header and
1488    body together.  (This problem exists on SunOS 4 when sendmail is run
1489    in remote mode.)  The value should be an expression to test whether
1490    the problem will actually occur.
1491    
1492  @item message-send-mail-partially-limit  @item message-send-mail-partially-limit
1493  @vindex message-send-mail-partially-limit  @vindex message-send-mail-partially-limit
1494  The limit on the size of messages sent as @samp{message/partial}.  @cindex split large message
1495  This is the minimum message size in characters beyond which the  The limitation of messages sent as message/partial.  The lower bound
1496  message should be sent in several parts.  If it is @code{nil}, the  of message size in characters, beyond which the message should be sent
1497  size is unlimited.  in several parts.  If it is @code{nil}, the size is unlimited.
1498    
1499  @end table  @end table
1500    
# Line 913  to.  If it isn't present already, it wil Line 1529  to.  If it isn't present already, it wil
1529    
1530  @item Organization  @item Organization
1531  @cindex organization  @cindex organization
1532    @vindex message-user-organization
1533    @vindex message-user-organization-file
1534  This optional header will be filled out depending on the  This optional header will be filled out depending on the
1535  @code{message-user-organization} variable.  @code{message-user-organization} variable.
1536  @code{message-user-organization-file} will be used if this variable is  @code{message-user-organization-file} will be used if this variable is
# Line 926  This optional header will be computed by Line 1544  This optional header will be computed by
1544    
1545  @item Message-ID  @item Message-ID
1546  @cindex Message-ID  @cindex Message-ID
1547    @vindex message-user-fqdn
1548  @vindex mail-host-address  @vindex mail-host-address
1549    @vindex user-mail-address
1550  @findex system-name  @findex system-name
1551  @cindex Sun  @cindex Sun
1552    @cindex i-did-not-set--mail-host-address--so-tickle-me
1553  This required header will be generated by Message.  A unique ID will be  This required header will be generated by Message.  A unique ID will be
1554  created based on the date, time, user name and system name.  Message  created based on the date, time, user name and system name.  For the
1555  will use @code{system-name} to determine the name of the system.  If  domain part, message will look (in this order) at
1556  this isn't a fully qualified domain name (FQDN), Message will use  @code{message-user-fqdn}, @code{system-name}, @code{mail-host-address}
1557  @code{mail-host-address} as the FQDN of the machine.  and @code{message-user-mail-address} (i.e. @code{user-mail-address})
1558    until a probably valid fully qualified domain name (FQDN) was found.
1559    
1560  @item User-Agent  @item User-Agent
1561  @cindex User-Agent  @cindex User-Agent
# Line 946  header of the article being replied to. Line 1568  header of the article being replied to.
1568    
1569  @item Expires  @item Expires
1570  @cindex Expires  @cindex Expires
1571    @vindex message-expires
1572  This extremely optional header will be inserted according to the  This extremely optional header will be inserted according to the
1573  @code{message-expires} variable.  It is highly deprecated and shouldn't  @code{message-expires} variable.  It is highly deprecated and shouldn't
1574  be used unless you know what you're doing.  be used unless you know what you're doing.
1575    
1576  @item Distribution  @item Distribution
1577  @cindex Distribution  @cindex Distribution
1578    @vindex message-distribution-function
1579  This optional header is filled out according to the  This optional header is filled out according to the
1580  @code{message-distribution-function} variable.  It is a deprecated and  @code{message-distribution-function} variable.  It is a deprecated and
1581  much misunderstood header.  much misunderstood header.
1582    
1583  @item Path  @item Path
1584  @cindex path  @cindex path
1585    @vindex message-user-path
1586  This extremely optional header should probably never be used.  This extremely optional header should probably never be used.
1587  However, some @emph{very} old servers require that this header is  However, some @emph{very} old servers require that this header is
1588  present.  @code{message-user-path} further controls how this  present.  @code{message-user-path} further controls how this
# Line 969  unlikely that you should need to fiddle Line 1594  unlikely that you should need to fiddle
1594    
1595  @findex yow  @findex yow
1596  @cindex Mime-Version  @cindex Mime-Version
1597  In addition, you can enter conses into this list.  The car of this cons  In addition, you can enter conses into this list.  The @sc{car} of this cons
1598  should be a symbol.  This symbol's name is the name of the header, and  should be a symbol.  This symbol's name is the name of the header, and
1599  the cdr can either be a string to be entered verbatim as the value of  the @sc{cdr} can either be a string to be entered verbatim as the value of
1600  this header, or it can be a function to be called.  This function should  this header, or it can be a function to be called.  This function should
1601  return a string to be inserted.  For instance, if you want to insert  return a string to be inserted.  For instance, if you want to insert
1602  @code{Mime-Version: 1.0}, you should enter @code{(Mime-Version . "1.0")}  @code{Mime-Version: 1.0}, you should enter @code{(Mime-Version . "1.0")}
# Line 979  into the list.  If you want to insert a Line 1604  into the list.  If you want to insert a
1604  something like @code{(X-Yow . yow)} into the list.  The function  something like @code{(X-Yow . yow)} into the list.  The function
1605  @code{yow} will then be called without any arguments.  @code{yow} will then be called without any arguments.
1606    
1607  If the list contains a cons where the car of the cons is  If the list contains a cons where the @sc{car} of the cons is
1608  @code{optional}, the cdr of this cons will only be inserted if it is  @code{optional}, the @sc{cdr} of this cons will only be inserted if it is
1609  non-@code{nil}.  non-@code{nil}.
1610    
1611    If you want to delete an entry from this list, the following Lisp
1612    snippet might be useful.  Adjust accordingly if you want to remove
1613    another element.
1614    
1615    @lisp
1616    (setq message-required-news-headers
1617          (delq 'Message-ID message-required-news-headers))
1618    @end lisp
1619    
1620  Other variables for customizing outgoing news articles:  Other variables for customizing outgoing news articles:
1621    
1622  @table @code  @table @code
# Line 1055  All these conditions are checked by defa Line 1689  All these conditions are checked by defa
1689  @item message-ignored-news-headers  @item message-ignored-news-headers
1690  @vindex message-ignored-news-headers  @vindex message-ignored-news-headers
1691  Regexp of headers to be removed before posting.  The default is@*  Regexp of headers to be removed before posting.  The default is@*
1692  @samp{^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:}.  @samp{^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:\\|^X-Draft-From:}.
1693    
1694  @item message-default-news-headers  @item message-default-news-headers
1695  @vindex message-default-news-headers  @vindex message-default-news-headers
# Line 1082  posting a prepared news message. Line 1716  posting a prepared news message.
1716  @end table  @end table
1717    
1718    
1719    @node Insertion Variables
1720    @section Insertion Variables
1721    
1722    @table @code
1723    @item message-ignored-cited-headers
1724    @vindex message-ignored-cited-headers
1725    All headers that match this regexp will be removed from yanked
1726    messages.  The default is @samp{.}, which means that all headers will be
1727    removed.
1728    
1729    @item message-cite-prefix-regexp
1730    @vindex message-cite-prefix-regexp
1731    Regexp matching the longest possible citation prefix on a line.
1732    
1733    @item message-citation-line-function
1734    @vindex message-citation-line-function
1735    @cindex attribution line
1736    Function called to insert the citation line.  The default is
1737    @code{message-insert-citation-line}, which will lead to citation lines
1738    that look like:
1739    
1740    @example
1741    Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
1742    @end example
1743    
1744    Point will be at the beginning of the body of the message when this
1745    function is called.
1746    
1747    Note that Gnus provides a feature where clicking on `writes:' hides the
1748    cited text.  If you change the citation line too much, readers of your
1749    messages will have to adjust their Gnus, too.  See the variable
1750    @code{gnus-cite-attribution-suffix}.  @xref{Article Highlighting, ,
1751    Article Highlighting, gnus, The Gnus Manual}, for details.
1752    
1753    @item message-yank-prefix
1754    @vindex message-yank-prefix
1755    @cindex yanking
1756    @cindex quoting
1757    When you are replying to or following up an article, you normally want
1758    to quote the person you are answering.  Inserting quoted text is done
1759    by @dfn{yanking}, and each line you yank will have
1760    @code{message-yank-prefix} prepended to it (except for quoted and
1761    empty lines which uses @code{message-yank-cited-prefix}).  The default
1762    is @samp{> }.
1763    
1764    @item message-yank-cited-prefix
1765    @vindex message-yank-cited-prefix
1766    @cindex yanking
1767    @cindex cited
1768    @cindex quoting
1769    When yanking text from an article which contains no text or already
1770    cited text, each line will be prefixed with the contents of this
1771    variable.  The default is @samp{>}.  See also
1772    @code{message-yank-prefix}.
1773    
1774    @item message-indentation-spaces
1775    @vindex message-indentation-spaces
1776    Number of spaces to indent yanked messages.
1777    
1778    @item message-cite-function
1779    @vindex message-cite-function
1780    @findex message-cite-original
1781    @findex sc-cite-original
1782    @findex message-cite-original-without-signature
1783    @cindex Supercite
1784    Function for citing an original message.  The default is
1785    @code{message-cite-original}, which simply inserts the original message
1786    and prepends @samp{> } to each line.
1787    @code{message-cite-original-without-signature} does the same, but elides
1788    the signature.  You can also set it to @code{sc-cite-original} to use
1789    Supercite.
1790    
1791    @item message-indent-citation-function
1792    @vindex message-indent-citation-function
1793    Function for modifying a citation just inserted in the mail buffer.
1794    This can also be a list of functions.  Each function can find the
1795    citation between @code{(point)} and @code{(mark t)}.  And each function
1796    should leave point and mark around the citation text as modified.
1797    
1798    @item message-mark-insert-begin
1799    @vindex message-mark-insert-begin
1800    String to mark the beginning of some inserted text.
1801    
1802    @item message-mark-insert-end
1803    @vindex message-mark-insert-end
1804    String to mark the end of some inserted text.
1805    
1806    @item message-signature
1807    @vindex message-signature
1808    String to be inserted at the end of the message buffer.  If @code{t}
1809    (which is the default), the @code{message-signature-file} file will be
1810    inserted instead.  If a function, the result from the function will be
1811    used instead.  If a form, the result from the form will be used instead.
1812    If this variable is @code{nil}, no signature will be inserted at all.
1813    
1814    @item message-signature-file
1815    @vindex message-signature-file
1816    File containing the signature to be inserted at the end of the buffer.
1817    The default is @file{~/.signature}.
1818    
1819    @item message-signature-insert-empty-line
1820    @vindex message-signature-insert-empty-line
1821    If @code{t} (the default value) an empty line is inserted before the
1822    signature separator.
1823    
1824    @end table
1825    
1826    Note that RFC1036bis says that a signature should be preceded by the three
1827    characters @samp{-- } on a line by themselves.  This is to make it
1828    easier for the recipient to automatically recognize and process the
1829    signature.  So don't remove those characters, even though you might feel
1830    that they ruin your beautiful design, like, totally.
1831    
1832    Also note that no signature should be more than four lines long.
1833    Including @acronym{ASCII} graphics is an efficient way to get
1834    everybody to believe that you are silly and have nothing important to
1835    say.
1836    
1837    
1838  @node Various Message Variables  @node Various Message Variables
1839  @section Various Message Variables  @section Various Message Variables
1840    
# Line 1089  posting a prepared news message. Line 1842  posting a prepared news message.
1842  @item message-default-charset  @item message-default-charset
1843  @vindex message-default-charset  @vindex message-default-charset
1844  @cindex charset  @cindex charset
1845  Symbol naming a @sc{mime} charset.  Non-ASCII characters in messages are  Symbol naming a @acronym{MIME} charset.  Non-@acronym{ASCII}
1846  assumed to be encoded using this charset.  The default is @code{nil},  characters in messages are assumed to be encoded using this charset.
1847  which means ask the user.  (This variable is used only on non-@sc{mule}  The default is @code{nil}, which means ask the user.  (This variable
1848  Emacsen.  is used only on non-@sc{mule} Emacsen.  @xref{Charset Translation, ,
1849  @xref{Charset Translation, , Charset Translation, emacs-mime,  Charset Translation, emacs-mime, Emacs MIME Manual}, for details on
1850        Emacs MIME Manual}, for details on the @sc{mule}-to-@sc{mime}  the @sc{mule}-to-@acronym{MIME} translation process.
 translation process.  
1851    
1852  @item message-signature-separator  @item message-signature-separator
1853  @vindex message-signature-separator  @vindex message-signature-separator
# Line 1111  follows this line--} by default. Line 1863  follows this line--} by default.
1863  @vindex message-directory  @vindex message-directory
1864  Directory used by many mailey things.  The default is @file{~/Mail/}.  Directory used by many mailey things.  The default is @file{~/Mail/}.
1865    
1866    @item message-auto-save-directory
1867    @vindex message-auto-save-directory
1868    Directory where Message auto-saves buffers if Gnus isn't running.  If
1869    @code{nil}, Message won't auto-save.  The default is @file{~/Mail/drafts/}.
1870    
1871  @item message-signature-setup-hook  @item message-signature-setup-hook
1872  @vindex message-signature-setup-hook  @vindex message-signature-setup-hook
1873  Hook run when initializing the message buffer.  It is run after the  Hook run when initializing the message buffer.  It is run after the
# Line 1160  This function won't add the header if th Line 1917  This function won't add the header if th
1917    
1918  @item message-send-mail-hook  @item message-send-mail-hook
1919  @vindex message-send-mail-hook  @vindex message-send-mail-hook
1920  Hook run before sending mail messages.  Hook run before sending mail messages.  This hook is run very late --
1921    just before the message is actually sent as mail.
1922    
1923  @item message-send-news-hook  @item message-send-news-hook
1924  @vindex message-send-news-hook  @vindex message-send-news-hook
1925  Hook run before sending news messages.  Hook run before sending news messages.  This hook is run very late --
1926    just before the message is actually sent as news.
1927    
1928  @item message-sent-hook  @item message-sent-hook
1929  @vindex message-sent-hook  @vindex message-sent-hook
1930  Hook run after sending messages.  Hook run after sending messages.
1931    
1932    @item message-cancel-hook
1933    @vindex message-cancel-hook
1934    Hook run when canceling news articles.
1935    
1936  @item message-mode-syntax-table  @item message-mode-syntax-table
1937  @vindex message-mode-syntax-table  @vindex message-mode-syntax-table
1938  Syntax table used in message mode buffers.  Syntax table used in message mode buffers.
1939    
1940    @item message-strip-special-text-properties
1941    @vindex message-strip-special-text-properties
1942    Emacs has a number of special text properties which can break message
1943    composing in various ways.  If this option is set, message will strip
1944    these properties from the message composition buffer.  However, some
1945    packages requires these properties to be present in order to work.  If
1946    you use one of these packages, turn this option off, and hope the
1947    message composition doesn't break too bad.
1948    
1949  @item message-send-method-alist  @item message-send-method-alist
1950  @vindex message-send-method-alist  @vindex message-send-method-alist
1951    
1952  Alist of ways to send outgoing messages.  Each element has the form  Alist of ways to send outgoing messages.  Each element has the form
1953    
1954  @lisp  @lisp
1955  (TYPE PREDICATE FUNCTION)  (@var{type} @var{predicate} @var{function})
1956  @end lisp  @end lisp
1957    
1958  @table @var  @table @var
# Line 1216  A function to be called if @var{predicat Line 1988  A function to be called if @var{predicat
1988  @vindex message-fcc-handler-function  @vindex message-fcc-handler-function
1989  A function called to save outgoing articles.  This function will be  A function called to save outgoing articles.  This function will be
1990  called with the name of the file to store the article in.  The default  called with the name of the file to store the article in.  The default
1991  function is @code{message-output} which saves in inbox format.  function is @code{message-output} which saves in Unix mailbox format.
1992    
1993  @item message-courtesy-message  @item message-courtesy-message
1994  @vindex message-courtesy-message  @vindex message-courtesy-message
# Line 1225  the mailed copy.  If the string contains Line 1997  the mailed copy.  If the string contains
1997  newsgroups the article has been posted to will be inserted there.  If  newsgroups the article has been posted to will be inserted there.  If
1998  this variable is @code{nil}, no such courtesy message will be added.  this variable is @code{nil}, no such courtesy message will be added.
1999  The default value is @samp{"The following message is a courtesy copy of  The default value is @samp{"The following message is a courtesy copy of
2000  an article\nthat has been posted to %s as well.\n\n"}.  an article\\nthat has been posted to %s as well.\\n\\n"}.
2001    
2002    @item message-fcc-externalize-attachments
2003    @vindex message-fcc-externalize-attachments
2004    If @code{nil}, attach files as normal parts in Fcc copies; if it is
2005    non-@code{nil}, attach local files as external parts.
2006    
2007    @item message-interactive
2008    @vindex message-interactive
2009    If non-@code{nil} wait for and display errors when sending a message;
2010    if @code{nil} let the mailer mail back a message to report errors.
2011    
2012  @end table  @end table
2013    
# Line 1308  This restores the Gnus window configurat Line 2090  This restores the Gnus window configurat
2090  killed, postponed or exited.  killed, postponed or exited.
2091    
2092  An @dfn{action} can be either: a normal function, or a list where the  An @dfn{action} can be either: a normal function, or a list where the
2093  @code{car} is a function and the @code{cdr} is the list of arguments, or  @sc{car} is a function and the @sc{cdr} is the list of arguments, or
2094  a form to be @code{eval}ed.  a form to be @code{eval}ed.
2095    
2096    
# Line 1318  a form to be @code{eval}ed. Line 2100  a form to be @code{eval}ed.
2100    
2101  Message uses virtually only its own variables---older @code{mail-}  Message uses virtually only its own variables---older @code{mail-}
2102  variables aren't consulted.  To force Message to take those variables  variables aren't consulted.  To force Message to take those variables
2103  into account, you can put the following in your @code{.emacs} file:  into account, you can put the following in your @file{.emacs} file:
2104    
2105  @lisp  @lisp
2106  (require 'messcompat)  (require 'messcompat)

Legend:
Removed from v.1.14.4.2  
changed lines
  Added in v.1.14.4.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26