New, the Gnus FAQ from http://my.gnus.org/FAQ.
[gnus] / texi / gnus-faq.texi
1 \input texinfo                  @c -*-texinfo-*-\input texinfo
2
3 @setfilename gnus-faq.info
4 @settitle The Gnus FAQ.
5 @dircategory Emacs
6 @direntry
7 * Frequently Asked Questions: (gnus-faq).   The new FAQ for Gnus.
8 @end direntry
9
10
11 @node Top, Introduction, , (dir)
12 @top Frequently Asked Questions
13 @chapheading Abstract
14
15  This is the new Gnus Frequently Asked Questions list.
16  If you have a Web browser, the official hypertext version is at
17  @uref{http://my.gnus.org/FAQ/,http://my.gnus.org/FAQ/},
18  the Docbook source is available from
19  @uref{http://sourceforge.net/projects/gnus/,http://sourceforge.net}.
20  
21
22  Please submit features and suggestions to the 
23  @uref{mailto:faq-discuss@@my.gnus.org,FAQ discussion list}.
24  The list is protected against junk mail with
25  @uref{http://smarden.org/qconfirm/index.html,qconfirm}. As
26  a subscriber, your submissions will automatically pass. You can
27  also subscribe to the list by sending a blank email to
28  @uref{mailto:faq-discuss-subscribe@@my.gnus.org,faq-discuss-subscribe@@my.gnus.org}
29  and @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss,browse  the archive}. 
30  
31  
32
33 @menu
34 * Introduction::                                About Gnus and this FAQ.
35 * Frequently Asked Questions with Answers::     This is what you are probably after.
36 * Glossary::                                    Terms used in the FAQ explained.
37
38 @detailmenu
39  --- The Detailed Node Listing ---
40
41 Frequently Asked Questions with Answers
42
43 * [1] Installation FAQ::                    Installation of Gnus.
44 * [2] Startup / Group buffer::              Start up questions and the first buffer Gnus shows you.
45 * [3] Getting messages::                    Making Gnus read your mail and news.
46 * [4] Reading messages::                    How to efficiently read messages.
47 * [5] Composing messages::                  Composing mails or Usenet postings.
48 * [6] Old messages::                        Importing, archiving, searching and deleting messages.
49 * [7] Gnus in a dial-up environment::       Reading mail and news while offline.
50 * [8] Getting help::                        When this FAQ isn't enough.
51 * [9] Tuning Gnus::                         How to make Gnus faster.
52
53 @end detailmenu
54 @end menu
55
56 @node Introduction, Frequently Asked Questions with Answers, Top, Top
57 @chapter Introduction
58
59 This is the Gnus Frequently Asked Questions list.
60
61 Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented
62  as a part of Emacs. It's been around in some form for almost a decade
63  now, and has been distributed as a standard part of Emacs for much of
64  that time. Gnus 5 is the latest (and greatest) incarnation. The
65  original version was called GNUS, and was written by Masanobu UMEDA.
66  When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and
67  decided to rewrite Gnus.
68
69  Its biggest strength is the fact that it is extremely
70  customizable. It is somewhat intimidating at first glance, but
71  most of the complexity can be ignored until you're ready to take
72  advantage of it. If you receive a reasonable volume of e-mail
73  (you're on various mailing lists), or you would like to read
74  high-volume mailing lists but cannot keep up with them, or read
75  high volume newsgroups or are just bored, then Gnus is what you
76  want.
77
78  This FAQ was maintained by Justin Sheehy until March 2002. He
79  would like to thank Steve Baur and Per Abrahamsen for doing a wonderful
80  job with this FAQ before him. We would like to do the same - thanks,
81  Justin!
82  
83
84  If you have a Web browser, the official hypertext version is at:
85  @uref{http://my.gnus.org/FAQ/,http://my.gnus.org/FAQ/}.
86  This version is much nicer than the unofficial hypertext
87  versions that are archived at Utrecht, Oxford, Smart Pages, Ohio
88  State, and other FAQ archives. See the resources question below
89  if you want information on obtaining it in another format.
90  
91
92  The information contained here was compiled with the assistance
93  of the Gnus development mailing list, and any errors or
94  misprints are the my.gnus.org team's fault, sorry.
95  
96
97 @node Frequently Asked Questions with Answers, Glossary, Introduction, Top
98 @chapter Frequently Asked Questions with Answers
99
100 @menu
101 * [1] Installation FAQ::                    Installation of Gnus.
102 * [2] Startup / Group buffer::              Start up questions and the first buffer Gnus shows you.
103 * [3] Getting messages::                    Making Gnus read your mail and news.
104 * [4] Reading messages::                    How to efficiently read messages.
105 * [5] Composing messages::                  Composing mails or Usenet postings.
106 * [6] Old messages::                        Importing, archiving, searching and deleting messages.
107 * [7] Gnus in a dial-up environment::       Reading mail and news while offline.
108 * [8] Getting help::                        When this FAQ isn't enough.
109 * [9] Tuning Gnus::                         How to make Gnus faster.
110 @end menu
111
112 @node [1] Installation FAQ
113 @section [1] Installation FAQ
114
115 @menu
116 * [1.1]:: What is the latest version of Gnus?
117 * [1.2]:: What's new in 5.10.0?
118 * [1.3]:: Where and how to get Gnus?
119 * [1.4]:: What to do with the tarball now? 
120 * [1.5]:: Which version of Emacs do I need?
121 * [1.6]:: How do I run Gnus on both Emacs and XEmacs?
122 @end menu
123
124
125 @node [1.1]
126 @subsection [1.1]
127 Question 1.1: 
128
129 What is the latest version of Gnus?
130
131 Answer: 
132
133  Jingle please: Gnus 5.10.0 is released, get it while it's
134  hot! As well as the step in version number is rather
135  small, Gnus 5.10 has tons of new features which you
136  shouldn't miss, however if you are cautious, you might
137  prefer to stay with 5.8.8 respectively 5.9 (they are
138  basically the same) until some bugfix releases are out.
139  
140 @node [1.2]
141 @subsection [1.2]
142 Question 1.2: 
143
144 What's new in 5.10.0?
145
146 Answer: 
147
148  First of all, you should have a look into the file
149  GNUS-NEWS in the toplevel directory of the Gnus tarball,
150  there the most important changes are listed. Here's a
151  short list of the changes I find especially
152  important/interesting:
153  
154
155  
156
157 @itemize @bullet{}
158
159 @item
160  Major rewrite of the Gnus agent, Gnus agent is now
161  active by default.
162  
163
164  Many new article washing functions for dealing with
165  ugly formatted articles.
166  
167
168  Anti Spam features.
169  
170
171  message-utils now included in Gnus.
172  
173
174  New format specifiers for summary lines, e.g. %B for
175  a complex trn-style thread tree.
176  
177 @end itemize
178  
179 @node [1.3]
180 @subsection [1.3]
181 Question 1.3: 
182
183 Where and how to get Gnus?
184
185 Answer: 
186
187  The latest released version of Gnus isn't included in
188  Emacs 21 and until now it also isn't available through the
189  package system of XEmacs 21.4, therefor you should get the
190  Gnus tarball from
191  @uref{http://www.gnus.org/dist/gnus.tar.gz,http://www.gnus.org/dist/gnus.tar.gz}
192  or via anonymous FTP from 
193  @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz,ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}.
194  
195 @node [1.4]
196 @subsection [1.4]
197 Question 1.4: 
198
199  What to do with the tarball now?
200  
201
202 Answer: 
203
204  Untar it via @samp{tar xvzf gnus.tar.gz} and do the common 
205  @samp{./configure; make; make install} circle.
206  (under MS-Windows either get the Cygwin environment from
207  @uref{http://www.cygwin.com,http://www.cygwin.com}
208  which allows you to do what's described above or unpack the
209  tarball with some packer (e.g. Winace from
210  @uref{http://www.winace.com,http://www.winace.com})
211  and use the batch-file make.bat included in the tarball to install
212  Gnus. If you don't want to (or aren't allowed to) install Gnus
213  system-wide, you can install it in your home directory and add the
214  following lines to your ~/.xemacs/init.el or ~/.emacs:
215  
216
217 @example
218
219 (add-to-list 'load-path "/path/to/gnus/lisp")
220 (if (featurep 'xemacs)
221     (add-to-list 'Info-directory-list "/path/to/gnus/texi/")
222   (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/"))
223             
224 @end example
225
226 @noindent
227  Make sure that you don't have any gnus related stuff
228  before this line, on MS Windows use something like
229  "C:/path/to/lisp" (yes, "/").
230  
231 @node [1.5]
232 @subsection [1.5]
233 Question 1.5: 
234
235 Which version of Emacs do I need?
236
237 Answer: 
238
239  Gnus 5.10.0 requires an Emacs version that is greater
240  than or equal to Emacs 20.3 or XEmacs 20.1.
241  
242 @node [1.6]
243 @subsection [1.6]
244 Question 1.6: 
245
246 How do I run Gnus on both Emacs and XEmacs?
247
248 Answer: 
249
250  You can't use the same copy of Gnus in both as the Lisp
251  files are byte-compiled to a format which is different
252  depending on which Emacs did the compilation. Get one copy
253  of Gnus for Emacs and one for XEmacs.
254  
255 @node [2] Startup / Group buffer
256 @section [2] Startup / Group buffer
257
258 @menu
259 * [2.1]:: Every time I start Gnus I get a message "Gnus auto-save file exists. Do you want to read it?", what does this mean and how to prevent it? 
260 * [2.2]:: Gnus doesn't remember which groups I'm subscribed to, what's this? 
261 * [2.3]:: How to change the format of the lines in Group buffer? 
262 * [2.4]:: My group buffer becomes a bit crowded, is there a way to sort my groups into categories so I can easier browse through them? 
263 * [2.5]:: How to manually sort the groups in Group buffer? How to sort the groups in a topic? 
264 @end menu
265
266 @node [2.1]
267 @subsection [2.1]
268 Question 2.1: 
269
270  Every time I start Gnus I get a message "Gnus auto-save
271  file exists. Do you want to read it?", what does this mean
272  and how to prevent it?
273  
274
275 Answer: 
276
277  This message means that the last time you used Gnus, it
278  wasn't properly exited and therefor couldn't write its
279  informations to disk (e.g. which messages you read), you
280  are now asked if you want to restore those informations
281  from the auto-save file.
282  
283
284  To prevent this message make sure you exit Gnus
285  via @samp{q} in group buffer instead of
286  just killing Emacs.
287  
288 @node [2.2]
289 @subsection [2.2]
290 Question: 2.2 
291
292  Gnus doesn't remember which groups I'm subscribed to,
293  what's this?
294  
295
296 Answer: 
297
298  You get the message described in the q/a pair above while
299  starting Gnus, right? It's an other symptom for the same
300  problem, so read the answer above.
301  
302 @node [2.3]
303 @subsection [2.3]
304 Question 2.3: 
305
306  How to change the format of the lines in Group buffer?
307  
308
309 Answer: 
310
311  You've got to tweak the value of the variable
312  gnus-group-line-format. See the manual node "Group Line
313  Specification" for information on how to do this. An
314  example for this (guess from whose .gnus :-)):
315  
316
317 @example
318
319 (setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n")
320             
321 @end example
322  
323 @node [2.4]
324 @subsection [2.4]
325 Question 2.4: 
326
327  My group buffer becomes a bit crowded, is there a way to
328  sort my groups into categories so I can easier browse
329  through them?
330  
331
332 Answer: 
333
334  Gnus offers the topic mode, it allows you to sort your
335  groups in, well, topics, e.g. all groups dealing with
336  Linux under the topic linux, all dealing with music under
337  the topic music and all dealing with scottish music under
338  the topic scottish which is a subtopic of music.
339  
340
341  To enter topic mode, just hit t while in Group buffer. Now
342  you can use @samp{T n} to create a topic
343  at point and @samp{T m} to move a group to
344  a specific topic. For more commands see the manual or the
345  menu. You might want to include the %P specifier at the
346  beginning of your gnus-group-line-format variable to have
347  the groups nicely indented.
348  
349 @node [2.5]
350 @subsection [2.5]
351 Question 2.5: 
352
353  How to manually sort the groups in Group buffer? How to
354  sort the groups in a topic?
355  
356
357 Answer: 
358
359  Move point over the group you want to move and
360  hit @samp{C-k}, now move point to the
361  place where you want the group to be and
362  hit @samp{C-y}.
363  
364 @node [3] Getting messages
365 @section [3] Getting messages
366
367 @menu
368 * [3.1]:: I just installed Gnus, started it via M-x gnus but it only says "nntp (news) open error", what to do? 
369 * [3.2]:: I'm working under Windows and have no idea what ~/.gnus means. 
370 * [3.3]:: My news server requires authentication, how to store user name and password on disk? 
371 * [3.4]:: Gnus seems to start up OK, but I can't find out how to subscribe to a group. 
372 * [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed to post on this server as well as I am, what's that?
373 * [3.6]:: I want Gnus to fetch news from several servers, is this possible? 
374 * [3.7]:: And how about local spool files? 
375 * [3.8]:: OK, reading news works now, but I want to be able to read my mail with Gnus, too. How to do it? 
376 * [3.9]:: And what about IMAP? 
377 * [3.10]:: At the office we use one of those MS Exchange servers, can I use Gnus to read my mail from it? 
378 * [3.11]:: Can I tell Gnus not to delete the mails on the server it retrieves via POP3? 
379 @end menu
380
381 @node [3.1]
382 @subsection [3.1]
383 Question 3.1: 
384
385  I just installed Gnus, started it via 
386  @samp{M-x gnus} 
387  but it only says "nntp (news) open error", what to do?
388  
389
390 Answer: 
391
392  You've got to tell Gnus where to fetch the news from. Read
393  the documentation for information on how to do this. As a
394  first start, put those lines in ~/.gnus:
395  
396
397 @example
398
399 (setq gnus-select-method '(nntp "news.yourprovider.net"))
400 (setq user-mail-address "you@@yourprovider.net")
401 (setq user-full-name "Your Name")
402             
403 @end example
404  
405 @node [3.2]
406 @subsection [3.2]
407 Question 3.2: 
408
409  I'm working under Windows and have no idea what ~/.gnus means.
410  
411
412 Answer: 
413
414  The ~/ means the home directory where Gnus and Emacs look
415  for the configuration files. However, you don't really
416  need to know what this means, it suffices that Emacs knows
417  what it means :-) You can type 
418  @samp{C-x C-f ~/.gnus RET } 
419  (yes, with the forward slash, even on Windows), and
420  Emacs will open the right file for you. (It will most
421  likely be new, and thus empty.)
422  However, I'd discourage you from doing so, since the
423  directory Emacs chooses will most certainly not be what
424  you want, so let's do it the correct way. 
425  The first thing you've got to do is to
426  create a suitable directory (no blanks in directory name
427  please) e.g. c:\myhome. Then you must set the environment
428  variable HOME to this directory. To do this under Win9x
429  or Me include the line
430  
431
432 @example
433
434 SET HOME=C:\myhome
435             
436 @end example
437
438 @noindent
439  in your autoexec.bat and reboot. Under NT, 2000 and XP,
440  hit Winkey+Pause/Break to enter system options (if it
441  doesn't work, go to Control Panel -> System). There you'll
442  find the possibility to set environment variables, create
443  a new one with name HOME and value C:\myhome, a reboot is
444  not necessary.
445  
446
447  Now to create ~/.gnus, say
448  @samp{C-x C-f ~/.gnus RET C-x C-s}.
449  in Emacs. 
450  
451 @node [3.3]
452 @subsection [3.3]
453 Question 3.3: 
454
455  My news server requires authentication, how to store
456  user name and password on disk?
457  
458
459 Answer: 
460
461  Create a file ~/.authinfo which includes for each server a line like this
462  
463
464 @example
465 machine news.yourprovider.net login YourUserName password YourPassword
466 @end example
467
468 @noindent
469 .
470  Make sure that the file isn't readable to others if you
471  work on a OS which is capable of doing so. (Under Unix
472  say 
473
474 @example
475 chmod 600 ~/.authinfo
476 @end example
477
478 @noindent
479  in a shell.)
480  
481 @node [3.4]
482 @subsection [3.4]
483 Question 3.4: 
484
485  Gnus seems to start up OK, but I can't find out how to
486  subscribe to a group.
487  
488
489 Answer: 
490
491  If you know the name of the group say @samp{U
492  name.of.group RET} in group buffer (use the
493  tab-completion Luke). Otherwise hit ^ in group buffer,
494  this brings you to the server buffer. Now place point (the
495  cursor) over the server which carries the group you want,
496  hit @samp{RET}, move point to the group
497  you want to subscribe to and say @samp{u}
498  to subscribe to it.
499  
500 @node [3.5]
501 @subsection [3.5]
502 Question 3.5: 
503
504  Gnus doesn't show all groups / Gnus says I'm not allowed to
505  post on this server as well as I am, what's that?
506  
507
508 Answer: 
509
510  Some providers allow restricted anonymous access and full
511  access only after authorization. To make Gnus send authinfo
512  to those servers append 
513  
514
515 @example
516 force yes
517 @end example
518  
519
520 @noindent
521  to the line for those servers in ~/.authinfo.
522  
523 @node [3.6]
524 @subsection [3.6]
525 Question 3.6: 
526
527  I want Gnus to fetch news from several servers, is this possible?
528  
529
530 Answer: 
531
532  Of course. You can specify more sources for articles in the
533  variable gnus-secondary-select-methods. Add something like
534  this in ~/.gnus:
535  
536
537 @example
538
539 (add-to-list 'gnus-secondary-select-methods '(nntp "news.yourSecondProvider.net"))
540 (add-to-list 'gnus-secondary-select-methods '(nntp "news.yourThirdProvider.net"))
541             
542 @end example
543  
544 @node [3.7]
545 @subsection [3.7]
546 Question 3.7: 
547
548  And how about local spool files?
549  
550
551 Answer: 
552
553  No problem, this is just one more select method called
554  nnspool, so you want this:
555  
556
557 @example
558
559 (add-to-list 'gnus-secondary-select-methods '(nnspool ""))
560             
561 @end example
562
563 @noindent
564  Or this if you don't want an NNTP Server as primary news source:
565  
566
567 @example
568
569 (setq gnus-select-method '(nnspool ""))
570             
571 @end example
572
573 @noindent
574  Gnus will look for the spool file in /usr/spool/news, if you
575  want something different, change the line above to something like this:
576  
577
578 @example
579
580 (add-to-list 'gnus-secondary-select-methods
581              '(nnspool "" (nnspool-directory "/usr/local/myspoolddir")))
582             
583 @end example
584
585 @noindent
586  This sets the spool directory for this server only.
587  You might have to specify more stuff like the program used
588  to post articles, see the Gnus manual on how to do this.
589  
590 @node [3.8]
591 @subsection [3.8]
592 Question 3.8: 
593
594  OK, reading news works now, but I want to be able to read my mail
595  with Gnus, too. How to do it?
596  
597
598 Answer: 
599
600  That's a bit harder since there are many possible sources
601  for mail, many possible ways for storing mail and many
602  different ways for sending mail. The most common cases are
603  these: 1: You want to read your mail from a pop3 server and
604  send them directly to a SMTP Server 2: Some program like
605  fetchmail retrieves your mail and stores it on disk from
606  where Gnus shall read it. Outgoing mail is sent by
607  Sendmail, Postfix or some other MTA. Sometimes, you even
608  need a combination of the above cases.
609  
610
611  However, the first thing to do is to tell Gnus in which way
612  it should store the mail, in Gnus terminology which back end
613  to use. Gnus supports many different back ends, the most
614  commonly used one is nnml. It stores every mail in one file
615  and is therefor quite fast. However you might prefer a one
616  file per group approach if your file system has problems with
617  many small files, the nnfolder back end is then probably the
618  choice for you. To use nnml add the following to ~/.gnus:
619  
620
621 @example
622
623 (add-to-list 'gnus-secondary-select-methods '(nnml ""))
624             
625 @end example
626
627 @noindent
628  As you might have guessed, if you want nnfolder, it's
629  
630
631 @example
632
633 (add-to-list 'gnus-secondary-select-methods '(nnfolder ""))
634             
635 @end example
636  
637
638  Now we need to tell Gnus, where to get it's mail from. If
639  it's a POP3 server, then you need something like this:
640  
641
642 @example
643
644 (eval-after-load "mail-source"
645   '(add-to-list 'mail-sources '(pop :server "pop.YourProvider.net"
646                                     :user "yourUserName"
647                                     :password "yourPassword"))
648             
649 @end example
650
651 @noindent
652  Make sure ~/.gnus isn't readable to others if you store
653  your password there. If you want to read your mail from a
654  traditional spool file on your local machine, it's
655  
656
657 @example
658
659 (eval-after-load "mail-source"
660   '(add-to-list 'mail-sources '(file :path "/path/to/spool/file"))
661             
662 @end example
663
664 @noindent
665  If it's a Maildir, with one file per message as used by
666  postfix, Qmail and (optionally) fetchmail it's
667  
668
669 @example
670
671 (eval-after-load "mail-source"
672   '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/"
673                                         :subdirs ("cur" "new")))
674             
675 @end example
676
677 @noindent
678  And finally if you want to read your mail from several files
679  in one directory, for example because procmail already split your
680  mail, it's
681  
682
683 @example
684
685 (eval-after-load "mail-source"
686   '(add-to-list 'mail-sources '(directory :path "/path/to/procmail-dir/"
687                                           :suffix ".prcml"))
688             
689 @end example
690
691 @noindent
692  Where :suffix ".prcml" tells Gnus only to use files with the
693  suffix .prcml.
694  
695
696  OK, now you only need to tell Gnus how to send mail. If you
697  want to send mail via sendmail (or whichever MTA is playing
698  the role of sendmail on your system), you don't need to do
699  anything. However, if you want to send your mail to an
700  SMTP Server you need the following in your ~/.gnus
701  
702
703 @example
704
705 (setq send-mail-function 'smtpmail-send-it)
706 (setq message-send-mail-function 'smtpmail-send-it)
707 (setq smtpmail-default-smtp-server "smtp.yourProvider.net")
708             
709 @end example
710  
711 @node [3.9]
712 @subsection [3.9]
713 Question 3.9: 
714
715  And what about IMAP?
716  
717
718 Answer: 
719
720  There are two ways of using IMAP with Gnus. The first one is
721  to use IMAP like POP3, that means Gnus fetches the mail from
722  the IMAP server and stores it on disk. If you want to do
723  this (you don't really want to do this) add the following to
724  ~/.gnus
725  
726
727 @example
728
729 (add-to-list 'mail-sources '(imap :server "mail.mycorp.com"
730                                   :user "username"
731                                   :pass "password"
732                                   :stream network
733                                   :authentication login
734                                   :mailbox "INBOX"
735                                   :fetchflag "\\Seen"))
736             
737 @end example
738
739 @noindent
740  You might have to tweak the values for stream and/or
741  authentification, see the Gnus manual node "Mail Source
742  Specifiers" for possible values.
743  
744
745  If you want to use IMAP the way it's intended, you've got to
746  follow a different approach. You've got to add the nnimap
747  back end to your select method and give the information
748  about the server there.
749  
750
751 @example
752
753 (add-to-list 'gnus-secondary-select-methods 
754                          '(nnimap "Give the baby a name"
755                                   (nnimap-address "imap.yourProvider.net")
756                                   (nnimap-port 143)
757                                   (nnimap-list-pattern "archive.*")))
758             
759 @end example
760
761 @noindent
762  Again, you might have to specify how to authenticate to the
763  server if Gnus can't guess the correct way, see the Manual
764  Node "IMAP" for detailed information.
765  
766 @node [3.10]
767 @subsection [3.10]
768 Question 3.10: 
769
770  At the office we use one of those MS Exchange servers, can I use
771  Gnus to read my mail from it?
772  
773
774 Answer: 
775
776  Offer your administrator a pair of new running shoes for
777  activating IMAP on the server and follow the instructions
778  above.
779  
780 @node [3.11]
781 @subsection [3.11]
782 Question 3.11: 
783
784  Can I tell Gnus not to delete the mails on the server it
785  retrieves via POP3?
786  
787
788 Answer: 
789
790  First of all, that's not the way POP3 is intended to work,
791  if you have the possibility, you should use the IMAP
792  Protocol if you want your messages to stay on the
793  server. Nevertheless there might be situations where you
794  need the feature, but sadly Gnus itself has no predefined
795  functionality to do so.
796  
797
798  However this is Gnus county so there are possibilities to
799  achieve what you want. The easiest way is to get an external
800  program which retrieves copies of the mail and stores them
801  on disk, so Gnus can read it from there. On Unix systems you
802  could use e.g. fetchmail for this, on MS Windows you can use
803  Hamster, an excellent local news and mail server.
804  
805
806  The other solution would be, to replace the method Gnus
807  uses to get mail from POP3 servers by one which is capable
808  of leaving the mail on the server. If you use XEmacs, get
809  the package mail-lib, it includes an enhanced pop3.el,
810  look in the file, there's documentation on how to tell
811  Gnus to use it and not to delete the retrieved mail. For
812  GNU Emacs look for the file epop3.el which can do the same
813  (If you know the home of this file, please send me an
814  e-mail). You can also tell Gnus to use an external program
815  (e.g. fetchmail) to fetch your mail, see the info node
816  "Mail Source Specifiers" in the Gnus manual on how to do
817  it.
818  
819
820 @node [4] Reading messages
821 @section [4] Reading messages
822
823 @menu
824 * [4.1]:: When I enter a group, all read messages are gone. How to view them again? 
825 * [4.2]:: How to tell Gnus to show an important message every time I enter a group, even when it's read? 
826 * [4.3]:: How to view the headers of a message? 
827 * [4.4]:: How to view the raw unformatted message? 
828 * [4.5]:: How can I change the headers Gnus displays by default at the top of the article buffer? 
829 * [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the text part if it's available. How to do it? 
830 * [4.7]:: Can I use some other browser than w3 to render my HTML-mails? 
831 * [4.8]:: Is there anything I can do to make poorly formatted mails more readable? 
832 * [4.9]:: Is there a way to automatically ignore posts by specific authors or with specific words in the subject? And can I highlight more interesting ones in some way? 
833 * [4.10]:: How can I disable threading in some (e.g. mail-) groups, or set other variables specific for some groups? 
834 * [4.11]:: Can I highlight messages written by me and follow-ups to those? 
835 * [4.12]:: The number of total messages in a group which Gnus displays in group buffer is by far to high, especially in mail groups. Is this a bug? 
836 * [4.13]:: I don't like the layout of summary and article buffer, how to change it? Perhaps even a three pane display? 
837 * [4.14]:: I don't like the way the Summary buffer looks, how to tweak it? 
838 * [4.15]:: How to split incoming mails in several groups? 
839 @end menu
840
841 @node [4.1]
842 @subsection [4.1]
843 Question 4.1: 
844
845  When I enter a group, all read messages are gone. How to view them again?
846  
847
848 Answer: 
849
850  If you enter the group by saying 
851  @samp{RET}
852  in summary buffer with point over the group, only unread and ticked messages are loaded. Say
853  @samp{C-u RET}
854  instead to load all available messages. If you want only the e.g. 300 newest say
855  @samp{C-u 300 RET}
856  
857
858  Loading only unread messages can be annoying if you have threaded view enabled, say
859  
860
861 @example
862
863 (setq gnus-fetch-old-headers 'some)
864               
865 @end example
866  
867
868 @noindent
869  in ~/.gnus to load enough old articles to prevent teared threads, replace 'some with t to load
870  all articles (Warning: Both settings enlarge the amount of data which is 
871  fetched when you enter a group and slow down the process of entering a group).
872  
873
874  If you already use Gnus 5.10.0, you can say 
875  @samp{/o N} 
876  In summary buffer to load the last N messages, this feature is not available in 5.8.8
877  
878
879  If you don't want all old messages, but the parent of the message you're just reading,
880  you can say @samp{^}, if you want to retrieve the whole thread
881  the message you're just reading belongs to, @samp{A T} is your friend.
882  
883 @node [4.2]
884 @subsection [4.2]
885 Question 4.2: 
886
887  How to tell Gnus to show an important message every time I
888  enter a group, even when it's read?
889  
890
891 Answer: 
892
893  You can tick important messages. To do this hit
894  @samp{u} while point is in summary buffer
895  over the message. When you want to remove the mark, hit
896  either @samp{d} (this deletes the tick
897  mark and set's unread mark) or @samp{M c}
898  (which deletes all marks for the message).
899  
900 @node [4.3]
901 @subsection [4.3]
902 Question 4.3: 
903
904  How to view the headers of a message?
905  
906
907 Answer: 
908
909  Say @samp{t} 
910  to show all headers, one more
911  @samp{t} 
912  hides them again.
913  
914 @node [4.4]
915 @subsection [4.4]
916 Question 4.4: 
917
918  How to view the raw unformatted message?
919  
920
921 Answer: 
922
923  Say 
924  @samp{C-u g} 
925  to show the raw message
926  @samp{g} 
927  returns to normal view.
928  
929 @node [4.5]
930 @subsection [4.5]
931 Question 4.5: 
932
933  How can I change the headers Gnus displays by default at
934  the top of the article buffer?
935  
936
937 Answer: 
938
939  The variable gnus-visible-headers controls which headers
940  are shown, its value is a regular expression, header lines
941  which match it are shown. So if you want author, subject,
942  date, and if the header exists, Followup-To and MUA / NUA
943  say this in ~/.gnus:
944  
945
946 @example
947
948 (setq gnus-visible-headers 
949 "^\\(From:\\|Subject:\\|Date:\\|Followup-To:\\|X-Newsreader:\\|User-Agent:\\|X-Mailer:\\)")
950             
951 @end example
952  
953 @node [4.6]
954 @subsection [4.6]
955 Question 4.6: 
956
957  I'd like Gnus NOT to render HTML-mails but show me the
958  text part if it's available. How to do it?
959  
960
961 Answer: 
962
963  Say
964  
965
966 @example
967
968 (eval-after-load "mm-decode"
969  '(progn 
970       (add-to-list 'mm-discouraged-alternatives "text/html")
971       (add-to-list 'mm-discouraged-alternatives "text/richtext")))
972             
973 @end example
974
975 @noindent
976  in ~/.gnus. If you don't want HTML rendered, even if there's no text alternative add
977  
978
979 @example
980
981 (setq mm-automatic-display (remove "text/html" mm-automatic-display))
982             
983 @end example
984
985 @noindent
986  too.
987  
988 @node [4.7]
989 @subsection [4.7]
990 Question 4.7: 
991
992  Can I use some other browser than w3 to render my HTML-mails?
993  
994
995 Answer: 
996
997  Only if you use Gnus 5.10.0 or younger. In this case you've got the
998  choice between w3, w3m, links, lynx and html2text, which
999  one is used can be specified in the variable
1000  mm-text-html-renderer, so if you want links to render your
1001  mail say
1002  
1003
1004 @example
1005
1006 (setq mm-text-html-renderer 'links)
1007             
1008 @end example
1009  
1010 @node [4.8]
1011 @subsection [4.8]
1012 Question 4.8: 
1013
1014  Is there anything I can do to make poorly formatted mails
1015  more readable?
1016  
1017
1018 Answer: 
1019
1020  Gnus offers you several functions to "wash" incoming mail,
1021  you can find them if you browse through the menu, item Article->Washing. The most
1022  interesting ones are probably "Wrap long lines" (
1023  @samp{W w}
1024  ), "Decode ROT13" (
1025  @samp{W r}
1026  ) and "Outlook Deuglify" which repairs the dumb quoting used
1027  by many users of Microsoft products (
1028  @samp{W Y f} gives you full deuglify.
1029  See @samp{W Y C-h} or
1030  have a look at the menus for other deuglifications).
1031  Outlook deuglify is only available since Gnus 5.10.0.
1032  
1033 @node [4.9]
1034 @subsection [4.9]
1035 Question 4.9: 
1036
1037  Is there a way to automatically ignore posts by specific
1038  authors or with specific words in the subject? And can I
1039  highlight more interesting ones in some way?
1040  
1041
1042 Answer: 
1043
1044  You want Scoring. Scoring means, that you define rules
1045  which assign each message an integer value. Depending on
1046  the value the message is highlighted in summary buffer (if
1047  it's high, say +2000) or automatically marked read (if the
1048  value is low, say -800) or some other action happens.
1049  
1050
1051  There are basically three ways of setting up rules which assign
1052  the scoring-value to messages. The first and easiest way is to set
1053  up rules based on the article you are just reading. Say you're
1054  reading a message by a guy who always writes nonsense and you want
1055  to ignore his messages in the future. Hit
1056  @samp{L}, to set up a rule which lowers the score.
1057  Now Gnus asks you which the criteria for lowering the Score shall
1058  be. Hit @samp{?} twice to see all possibilities,
1059  we want @samp{a} which means the author (the from
1060  header). Now Gnus wants to know which kind of matching we want.
1061  Hit either @samp{e} for an exact match or
1062  @samp{s} for substring-match and delete afterwards
1063  everything but the name to score down all authors with the given
1064  name no matter which email address is used. Now you need to tell
1065  Gnus when to apply the rule and how long it should last, hit e.g.
1066  @samp{p} to apply the rule now and let it last
1067  forever. If you want to raise the score instead of lowering it say
1068  @samp{I} instead of @samp{L}.
1069  
1070
1071  You can also set up rules by hand. To do this say @samp{V
1072  f} in summary buffer. Then you are asked for the name
1073  of the score file, it's name.of.group.SCORE for rules valid in
1074  only one group or all.Score for rules valid in all groups. See the
1075  Gnus manual for the exact syntax, basically it's one big list
1076  whose elements are lists again. the first element of those lists
1077  is the header to score on, then one more list with what to match,
1078  which score to assign, when to expire the rule and how to do the
1079  matching. If you find me very interesting, you could e.g. add the
1080  following to your all.Score:
1081  
1082
1083 @example
1084
1085 (("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s))
1086  ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s)))
1087             
1088 @end example
1089
1090 @noindent
1091  This would add 999 to the score of messages written by me
1092  and 500 to the score of messages which are a (possibly
1093  indirect) answer to a message written by me. Of course
1094  nobody with a sane mind would do this :-)
1095  
1096
1097  The third alternative is adaptive scoring. This means Gnus
1098  watches you and tries to find out what you find
1099  interesting and what annoying and sets up rules
1100  which reflect this. Adaptive scoring can be a huge help
1101  when reading high traffic groups. If you want to activate
1102  adaptive scoring say
1103  
1104
1105 @example
1106
1107 (setq gnus-use-adaptive-scoring t)
1108             
1109 @end example
1110
1111 @noindent
1112  in ~/.gnus.
1113  
1114 @node [4.10]
1115 @subsection [4.10]
1116 Question 4.10: 
1117
1118  How can I disable threading in some (e.g. mail-) groups, or
1119  set other variables specific for some groups?
1120  
1121
1122 Answer: 
1123
1124  While in group buffer move point over the group and hit
1125  @samp{G c}, this opens a buffer where you
1126  can set options for the group. At the bottom of the buffer
1127  you'll find an item that allows you to set variables
1128  locally for the group. To disable threading enter
1129  gnus-show-threads as name of variable and nil as
1130  value. Hit button done at the top of the buffer when
1131  you're ready.
1132  
1133 @node [4.11]
1134 @subsection [4.11]
1135 Question 4.11: 
1136
1137  Can I highlight messages written by me and follow-ups to
1138  those?
1139  
1140
1141 Answer: 
1142
1143  Stop those "Can I ..." questions, the answer is always yes
1144  in Gnus Country :-). It's a three step process: First we
1145  make faces (specifications of how summary-line shall look
1146  like) for those postings, then we'll give them some
1147  special score and finally we'll tell Gnus to use the new
1148  faces. You can find detailed instructions on how to do it on
1149  @uref{http://my.gnus.org/Members/dzimmerm/HowTo%2C2002-07-25%2C1027619165012198456/view,my.gnus.org}
1150  
1151 @node [4.12]
1152 @subsection [4.12]
1153 Question 4.12: 
1154
1155  The number of total messages in a group which Gnus
1156  displays in group buffer is by far to high, especially in
1157  mail groups. Is this a bug?
1158  
1159
1160 Answer: 
1161
1162  No, that's a matter of design of Gnus, fixing this would
1163  mean reimplementation of major parts of Gnus'
1164  back ends. Gnus thinks "highest-article-number -
1165  lowest-article-number = total-number-of-articles". This
1166  works OK for Usenet groups, but if you delete and move
1167  many messages in mail groups, this fails. To cure the
1168  symptom, enter the group via @samp{C-u RET} 
1169  (this makes Gnus get all messages), then
1170  hit @samp{M P b} to mark all messages and
1171  then say @samp{B m name.of.group} to move
1172  all messages to the group they have been in before, they
1173  get new message numbers in this process and the count is
1174  right again (until you delete and move your mail to other
1175  groups again).
1176  
1177 @node [4.13]
1178 @subsection [4.13]
1179 Question 4.13: 
1180
1181  I don't like the layout of summary and article buffer, how
1182  to change it? Perhaps even a three pane display?
1183  
1184
1185 Answer: 
1186
1187  You can control the windows configuration by calling the
1188  function gnus-add-configuration. The syntax is a bit
1189  complicated but explained very well in the manual node
1190  "Window Layout". Some popular examples:
1191  
1192
1193  Instead 25% summary 75% article buffer 35% summary and 65%
1194  article (the 1.0 for article means "take the remaining
1195  space"):
1196  
1197
1198 @example
1199
1200 (gnus-add-configuration '(article (vertical 1.0 (summary .35 point) (article 1.0))))
1201             
1202 @end example
1203  
1204
1205  A three pane layout, Group buffer on the left, summary
1206  buffer top-right, article buffer bottom-right:
1207  
1208
1209 @example
1210
1211 (gnus-add-configuration
1212  '(article
1213    (horizontal 1.0
1214                (vertical 25
1215                          (group 1.0))
1216                (vertical 1.0
1217                          (summary 0.25 point)
1218                          (article 1.0)))))
1219 (gnus-add-configuration
1220  '(summary
1221    (horizontal 1.0
1222                (vertical 25
1223                          (group 1.0))
1224                (vertical 1.0
1225                          (summary 1.0 point)))))              
1226             
1227 @end example
1228  
1229 @node [4.14]
1230 @subsection [4.14]
1231 Question 4.14: 
1232
1233  I don't like the way the Summary buffer looks, how to tweak it?
1234  
1235
1236 Answer: 
1237
1238  You've got to play around with the variable
1239  gnus-summary-line-format. It's value is a string of
1240  symbols which stand for things like author, date, subject
1241  etc. A list of the available specifiers can be found in the
1242  manual node "Summary Buffer Lines" and the often forgotten
1243  node "Formatting Variables" and it's sub-nodes. There
1244  you'll find useful things like positioning the cursor and
1245  tabulators which allow you a summary in table form, but
1246  sadly hard tabulators are broken in 5.8.8.
1247  
1248
1249  Since 5.10.0, Gnus offers you some very nice new specifiers,
1250  e.g. %B which draws a thread-tree and %&user-date which
1251  gives you a date where the details are dependent of the
1252  articles age. Here's an example which uses both:
1253  
1254
1255 @example
1256
1257 (setq gnus-summary-line-format ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n")
1258             
1259 @end example
1260
1261 @noindent
1262  resulting in:
1263  
1264
1265 @example
1266
1267 :O     Re: [Richard Stallman] rfc2047.el          |  13 |Lars Magne Ingebrigt |Sat 23:06
1268 :O     Re: Revival of the ding-patches list       |  13 |Lars Magne Ingebrigt |Sat 23:12
1269 :R  >  Re: Find correct list of articles for a gro|  25 |Lars Magne Ingebrigt |Sat 23:16
1270 :O  \->  ...                                      |  21 |Kai Grossjohann      | 0:01
1271 :R  >  Re: Cry for help: deuglify.el - moving stuf|  28 |Lars Magne Ingebrigt |Sat 23:34
1272 :O  \->  ...                                      | 115 |Raymond Scholz       | 1:24
1273 :O    \->  ...                                    |  19 |Lars Magne Ingebrigt |15:33
1274 :O     Slow mailing list                          |  13 |Lars Magne Ingebrigt |Sat 23:49
1275 :O     Re: `@@' mark not documented                |  13 |Lars Magne Ingebrigt |Sat 23:50
1276 :R  >  Re: Gnus still doesn't count messages prope|  23 |Lars Magne Ingebrigt |Sat 23:57
1277 :O  \->  ...                                      |  18 |Kai Grossjohann      | 0:35
1278 :O    \->  ...                                    |  13 |Lars Magne Ingebrigt | 0:56
1279             
1280 @end example
1281  
1282 @node [4.15]
1283 @subsection [4.15]
1284 Question 4.15: 
1285
1286  How to split incoming mails in several groups?
1287  
1288
1289 Answer: 
1290
1291  Gnus offers two possibilities for splitting mail, the easy
1292  nnmail-split-methods and the more powerful Fancy Mail
1293  Splitting. I'll only talk about the first one, refer to
1294  the manual, node "Fancy Mail Splitting" for the latter.
1295  
1296
1297  The value of nnmail-split-methods is a list, each element
1298  is a list which stands for a splitting rule. Each rule has
1299  the form "group where matching articles should go to",
1300  "regular expression which has to be matched", the first
1301  rule which matches wins. The last rule must always be a
1302  general rule (regular expression .*) which denotes where
1303  articles should go which don't match any other rule. If
1304  the folder doesn't exist yet, it will be created as soon
1305  as an article lands there. By default the mail will be
1306  send to all groups whose rules match. If you 
1307  don't want that (you probably don't want), say
1308  
1309
1310 @example
1311
1312 (setq nnmail-crosspost nil)
1313             
1314 @end example
1315
1316 @noindent
1317  in ~/.gnus.
1318  
1319
1320  An example might be better than thousand words, so here's
1321  my nnmail-split-methods. Note that I send duplicates in a
1322  special group and that the default group is spam, since I
1323  filter all mails out which are from some list I'm
1324  subscribed to or which are addressed directly to me
1325  before. Those rules kill about 80% of the Spam which
1326  reaches me (Email addresses are changed to prevent spammers
1327  from using them):
1328  
1329
1330 @example
1331
1332 (setq nnmail-split-methods
1333   '(("duplicates" "^Gnus-Warning:.*duplicate")
1334     ("XEmacs-NT" "^\\(To:\\|CC:\\).*localpart@@xemacs.bla.*")
1335     ("Gnus-Tut" "^\\(To:\\|CC:\\).*localpart@@socha.bla.*")
1336     ("tcsh" "^\\(To:\\|CC:\\).*localpart@@mx.gw.bla.*")
1337     ("BAfH" "^\\(To:\\|CC:\\).*localpart@@.*uni-muenchen.bla.*")
1338     ("Hamster-src" "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*")
1339     ("Tagesschau" "^From: tagesschau <localpart@@www.tagesschau.bla>$")
1340     ("Replies" "^\\(CC:\\|To:\\).*localpart@@Frank-Schmitt.bla.*")
1341     ("EK" "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*")
1342     ("Spam" "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*")
1343     ("Spam" "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*")
1344     ("Spam" "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*")
1345     ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)")
1346     ("Spam" "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)")
1347     ("Spam" "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*")
1348     ("Spam" "^Delivered-To: GMX delivery to spamtrap@@gmx.bla$")
1349     ("Spam" "^Received: from link2buy.com")
1350     ("Spam" "^CC: .*azzrael@@t-online.bla")
1351     ("Spam" "^X-Mailer-Version: 1.50 BETA")
1352     ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.bla.*")
1353     ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)")
1354     ("Spam" "")))
1355               
1356 @end example
1357  
1358
1359 @node [5] Composing messages
1360 @section [5] Composing messages
1361
1362 @menu
1363 * [5.1]:: What are the basic commands I need to know for sending mail and postings? 
1364 * [5.2]:: How to enable automatic word-wrap when composing messages? 
1365 * [5.3]:: How to set stuff like From, Organization, Reply-To, signature...? 
1366 * [5.4]:: Can I set things like From, Signature etc group based on the group I post too? 
1367 * [5.5]:: Is there a spell-checker? Perhaps even on-the-fly spell-checking? 
1368 * [5.6]:: Can I set the dictionary based on the group I'm posting to? 
1369 * [5.7]:: Is there some kind of address-book, so I needn't remember all those email addresses? 
1370 * [5.8]:: Sometimes I see little images at the top of article buffer. What's that and how can I send one with my postings, too? 
1371 * [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups. Can Gnus warn me, when I'm replying by mail in newsgroups? 
1372 * [5.10]:: How to tell Gnus not to generate a sender header? 
1373 * [5.11]:: I want gnus to locally store copies of my send mail and news, how to do it? 
1374 * [5.12]:: People tell me my Message-IDs are not correct, why aren't they and how to fix it? 
1375 @end menu
1376
1377 @node [5.1]
1378 @subsection [5.1]
1379 Question 5.1: 
1380
1381  What are the basic commands I need to know for sending mail and postings?
1382  
1383
1384 Answer: 
1385
1386  To start composing a new mail hit @samp{m}
1387  either in Group or Summary buffer, for a posting, it's
1388  either @samp{a} in Group buffer and
1389  filling the Newsgroups header manually
1390  or @samp{a} in the Summary buffer of the
1391  group where the posting shall be send to. Replying by mail
1392  is
1393  @samp{r} if you don't want to cite the
1394  author, or import the cited text manually and
1395  @samp{R} to cite the text of the original
1396  message. For a follow up to a newsgroup, it's
1397  @samp{f} and @samp{F}
1398  (analog to @samp{r} and
1399  @samp{R}.
1400  
1401
1402  Enter new headers above the line saying "--text follows
1403  this line--", enter the text below the line. When ready
1404  hit @samp{C-c C-c}, to send the message,
1405  if you want to finish it later hit @samp{C-c
1406  C-d} to save it in the drafts group, where you
1407  can start editing it again by saying @samp{D
1408  e}.
1409  
1410 @node [5.2]
1411 @subsection [5.2]
1412 Question 5.2: 
1413
1414  How to enable automatic word-wrap when composing messages?
1415  
1416
1417 Answer: 
1418
1419  Say
1420  
1421
1422 @example
1423
1424 (add-hook 'message-mode-hook
1425       (lambda ()
1426            (setq fill-column 72)
1427            (turn-on-auto-fill)))
1428             
1429 @end example
1430
1431 @noindent
1432  in ~/.gnus. You can reformat a paragraph by hitting
1433  @samp{M-q} (as usual)
1434  
1435 @node [5.3]
1436 @subsection [5.3]
1437 Question 5.3: 
1438
1439  How to set stuff like From, Organization, Reply-To, signature...?
1440  
1441
1442 Answer: 
1443
1444  There are other ways, but you should use posting styles
1445  for this. (See below why).
1446  This example should make the syntax clear:
1447  
1448
1449 @example
1450
1451 (setq gnus-posting-styles
1452   '((".*"
1453      (name "Frank Schmitt")
1454      (address "me@@there.bla")
1455      (organization "Hamme net, kren mer och nimmi")
1456      (signature-file "~/.signature")
1457      ("X-SampleHeader" "foobar")
1458      (eval (setq some-variable "Foo bar")))))
1459             
1460 @end example
1461
1462 @noindent
1463  The ".*" means that this settings are the default ones
1464  (see below), valid values for the first element of the
1465  following lists are signature, signature-file,
1466  organization, address, name or body. The attribute name
1467  can also be a string. In that case, this will be used as
1468  a header name, and the value will be inserted in the
1469  headers of the article; if the value is `nil', the header
1470  name will be removed. You can also say (eval (foo bar)),
1471  then the function foo will be evaluated with argument bar
1472  and the result will be thrown away.
1473  
1474 @node [5.4]
1475 @subsection [5.4]
1476 Question 5.4: 
1477
1478  Can I set things like From, Signature etc group based on the group I post too?
1479  
1480
1481 Answer: 
1482
1483  That's the strength of posting styles. Before, we used ".*"
1484  to set the default for all groups. You can use a regexp
1485  like "^gmane" and the following settings are only applied
1486  to postings you send to the gmane hierarchy, use
1487  ".*binaries" instead and they will be applied to postings
1488  send to groups containing the string binaries in their
1489  name etc.
1490  
1491
1492  You can instead of specifying a regexp specify a function
1493  which is evaluated, only if it returns true, the
1494  corresponding settings take effect. Two interesting
1495  candidates for this are message-news-p which returns t if
1496  the current Group is a newsgroup and the corresponding
1497  message-mail-p.
1498  
1499
1500  Note that all forms that match are applied, that means in
1501  the example below, when I post to
1502  gmane.mail.spam.spamassassin.general, the settings under
1503  ".*" are applied and the settings under message-news-p and
1504  those under "^gmane" and those under
1505  "^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because
1506  of this put general settings at the top and specific ones
1507  at the bottom.
1508  
1509
1510 @example
1511
1512 (setq gnus-posting-styles
1513   '((".*"  ;;default
1514      (name "Frank Schmitt")
1515      (organization "Hamme net, kren mer och nimmi")
1516      (signature-file "~/.signature")    )
1517     ((message-news-p)  ;;Usenet news?
1518      (address "mySpamTrap@@Frank-Schmitt.bla")
1519      ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla")    )
1520     ((message-mail-p)  ;;mail?
1521      (address "usedForMails@@Frank-Schmitt.bla")    )
1522     ("^gmane" ;;this is mail, too in fact
1523      (address "usedForMails@@Frank-Schmitt.net")
1524      ("Reply-To" nil)    )
1525     ("^gmane.mail.spam.spamassassin.general$"
1526      (eval (setq mail-envelope-from "Azzrael@@rz-online.de"))
1527      (address "Azzrael@@rz-online.de")) ))
1528             
1529 @end example
1530  
1531 @node [5.5]
1532 @subsection [5.5]
1533 Question 5.5: 
1534
1535  Is there a spell-checker? Perhaps even on-the-fly spell-checking?
1536  
1537
1538 Answer: 
1539
1540  You can use ispell.el to spell-check stuff in Emacs. So the
1541  first thing to do is to make sure that you've got either
1542  @uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html,ispell}
1543  or @uref{http://aspell.sourceforge.net/,aspell}
1544  installed and in your Path. Then you need 
1545  @uref{http://www.kdstevens.com/~stevens/ispell-page.html,ispell.el}
1546  and for on-the-fly spell-checking 
1547  @uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html,flyspell.el}.
1548  Ispell.el is shipped with Gnus Emacs and available through the Emacs package system, 
1549  flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is 
1550  available through the package system, so there should be no need to install them 
1551  manually.
1552  
1553
1554  Ispell.el assumes you use ispell, if you choose aspell say
1555  
1556
1557 @example
1558 (setq ispell-program-name "aspell")
1559 @end example
1560  
1561
1562 @noindent
1563  in your Emacs configuration file.
1564  
1565
1566  If you want your outgoing messages to be spell-checked, say
1567  
1568
1569 @example
1570 (add-hook 'message-send-hook 'ispell-message)
1571 @end example
1572
1573 @noindent
1574  In your ~/.gnus, if you prefer on-the-fly spell-checking say
1575  
1576
1577 @example
1578 (add-hook 'message-mode-hook (lambda () (flyspell-mode 1)))
1579 @end example
1580  
1581 @node [5.6]
1582 @subsection [5.6]
1583 Question 5.6: 
1584
1585  Can I set the dictionary based on the group I'm posting to?
1586  
1587
1588 Answer: 
1589
1590  Yes, say something like
1591  
1592
1593 @example
1594
1595 (add-hook 'gnus-select-group-hook
1596           (lambda ()
1597             (cond
1598              ((string-match
1599                "^de\\." (gnus-group-real-name gnus-newsgroup-name))
1600               (ispell-change-dictionary "deutsch8"))
1601              (t
1602               (ispell-change-dictionary "english")))))
1603             
1604 @end example
1605  
1606
1607 @noindent
1608  in ~/.gnus. Change "^de\\." and "deutsch8" to something
1609  that suits your needs.
1610  
1611 @node [5.7]
1612 @subsection [5.7]
1613 Question 5.7:
1614
1615  Is there some kind of address-book, so I needn't remember
1616  all those email addresses?
1617  
1618
1619 Answer: 
1620
1621  There's an very basic solution for this, mail aliases.
1622  You can store your mail addresses in a ~/.mailrc file using a simple
1623  alias syntax:
1624  
1625
1626 @example
1627
1628 alias al        "Al <al@@english-heritage.bla>"
1629             
1630 @end example
1631
1632 @noindent
1633  Then typing your alias (followed by a space or punctuation
1634  character) on a To: or Cc: line in the message buffer will
1635  cause gnus to insert the full address for you. See the
1636  node "Mail Aliases" in Message (not Gnus) manual for
1637  details.
1638  
1639
1640  However, what you really want is the Insidious Big Brother 
1641  Database bbdb. Get it through the XEmacs package system or from
1642  @uref{http://bbdb.sourceforge.net/,bbdb's homepage}.
1643  Now place the following in ~/.gnus, to activate bbdb for Gnus:
1644  
1645
1646 @example
1647
1648 (require 'bbdb)
1649 (bbdb-initialize 'gnus 'message)
1650             
1651 @end example
1652
1653 @noindent
1654  Now you probably want some general bbdb configuration,
1655  place them in ~/.emacs:
1656  
1657
1658 @example
1659
1660 (require 'bbdb)
1661 ;;If you don't live in Northern America, you should disable the 
1662 ;;syntax check for telephone numbers by saying
1663 (setq bbdb-north-american-phone-numbers-p nil)
1664 ;;Tell bbdb about your email address:
1665 (setq bbdb-user-mail-names
1666       (regexp-opt '("Your.Email@@here.bla"
1667                     "Your.other@@mail.there.bla")))
1668 ;;cycling while completing email addresses
1669 (setq bbdb-complete-name-allow-cycling t)
1670 ;;No popup-buffers
1671 (setq bbdb-use-pop-up nil)
1672             
1673 @end example
1674
1675 @noindent
1676  Now you should be ready to go. Say @samp{M-x bbdb RET
1677  RET} to open a bbdb buffer showing all
1678  entries. Say @samp{c} to create a new
1679  entry, @samp{b} to search your BBDB and
1680  @samp{C-o} to add a new field to an
1681  entry. If you want to add a sender to the BBDB you can
1682  also just hit `:' on the posting in the summary buffer and
1683  you are done. When you now compose a new mail,
1684  hit @samp{TAB} to cycle through know
1685  recipients.
1686  
1687 @node [5.8]
1688 @subsection [5.8]
1689 Question 5.8: 
1690
1691  Sometimes I see little images at the top of article
1692  buffer. What's that and how can I send one with my
1693  postings, too?
1694  
1695
1696 Answer: 
1697
1698  Those images are called X-Faces. They are 48*48 pixel b/w
1699  pictures, encoded in a header line. If you want to include
1700  one in your posts, you've got to convert some image to a
1701  X-Face. So fire up some image manipulation program (say
1702  Gimp), open the image you want to include, cut out the
1703  relevant part, reduce color depth to 1 bit, resize to
1704  48*48 and save as bitmap. Now you should get the compface
1705  package from 
1706  @uref{ftp://ftp.cs.indiana.edu:/pub/faces/,this site}.
1707  and create the actual X-face by saying
1708  
1709
1710 @example
1711
1712 cat file.xbm | xbm2ikon |compface > file.face
1713 cat ./file.face | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g' > ./file.face.quoted
1714             
1715 @end example
1716
1717 @noindent
1718  if you can't use compface, there's an online X-face converter at 
1719  @uref{http://www.dairiki.org/xface/,http://www.dairiki.org/xface/}.
1720  If you use MS Windows, you could also use the WinFace program from
1721  @uref{http://www.xs4all.nl/~walterln/winface/,http://www.xs4all.nl/~walterln/winface/}.
1722  Now you only have to tell Gnus to include the X-face in your postings by saying
1723  
1724
1725 @example
1726
1727 (setq message-default-headers
1728         (with-temp-buffer
1729           (insert "X-Face: ")
1730           (insert-file-contents "~/.xemacs/xface")
1731           (buffer-string)))
1732             
1733 @end example
1734
1735 @noindent
1736  in ~/.gnus.
1737  
1738 @node [5.9]
1739 @subsection [5.9]
1740 Question 5.9: 
1741
1742  Sometimes I accidentally hit r instead of f in
1743  newsgroups. Can Gnus warn me, when I'm replying by mail in
1744  newsgroups?
1745  
1746
1747 Answer: 
1748
1749  Put this in ~/.gnus:
1750  
1751
1752 @example
1753
1754 (setq gnus-confirm-mail-reply-to-news t)
1755             
1756 @end example
1757
1758 @noindent
1759  if you already use Gnus 5.10.0, if you still use 5.8.8 or
1760  5.9 try this instead:
1761  
1762
1763 @example
1764
1765 (defadvice gnus-summary-reply (around reply-in-news activate)
1766        (interactive)
1767         (when (or (not (gnus-news-group-p gnus-newsgroup-name))
1768                   (y-or-n-p "Really reply? "))
1769          ad-do-it))
1770             
1771 @end example
1772  
1773 @node [5.10]
1774 @subsection [5.10]
1775 Question 5.10: 
1776
1777  How to tell Gnus not to generate a sender header?
1778  
1779
1780 Answer: 
1781
1782  Since 5.10.0 Gnus doesn't generate a sender header by
1783  default. For older Gnus' try this in ~/.gnus:
1784  
1785
1786 @example
1787
1788 (eval-after-load "message"
1789       '(add-to-list 'message-syntax-checks '(sender . disabled)))
1790             
1791 @end example
1792  
1793  
1794 @node [5.11]
1795 @subsection [5.11]
1796 Question 5.11: 
1797
1798  I want gnus to locally store copies of my send mail and
1799  news, how to do it?
1800  
1801
1802 Answer: 
1803
1804  You must set the variable gnus-message-archive-group to do
1805  this. You can set it to a string giving the name of the
1806  group where the copies shall go or like in the example
1807  below use a function which is evaluated and which returns
1808  the group to use.
1809  
1810
1811 @example
1812
1813 (setq gnus-message-archive-group
1814         '((if (message-news-p)
1815               "nnml:Send-News"
1816             "nnml:Send-Mail")))
1817             
1818 @end example
1819  
1820  
1821 @node [5.12]
1822 @subsection [5.12]
1823 Question 5.12: 
1824
1825  People tell me my Message-IDs are not correct, why
1826  aren't they and how to fix it?
1827  
1828
1829 Answer: 
1830
1831  The message-ID is an unique identifier for messages you
1832  send. To make it unique, Gnus need to know which machine
1833  name to put after the "@@". If the name of the machine
1834  where Gnus is running isn't suitable (it probably isn't
1835  at most private machines) you can tell Gnus what to use
1836  by saying:
1837  
1838
1839 @example
1840
1841 (defun message-make-message-id()
1842    (concat "<"(message-unique-id)"@@yourmachine.yourdomain.tld>"))
1843               
1844 @end example
1845  
1846
1847 @noindent
1848  in ~/.gnus. If you have no idea what to insert for
1849  "yourmachine.yourdomain.tld", you've got several
1850  choices. You can either ask your provider if he allows
1851  you to use something like
1852  yourUserName.userfqdn.provider.net, or you can use
1853  somethingUnique.yourdomain.tld if you own the domain
1854  yourdomain.tld, or you can register at a service which
1855  gives private users a FQDN for free, e.g. 
1856  @uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html,http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}.
1857  (Sorry but this website is in German, if you know of an
1858  English one offering the same, drop me a note).
1859  
1860
1861  Finally you can tell Gnus not to generate a Message-ID
1862  for News at all (and letting the server do the job) by saying
1863  
1864
1865 @example
1866
1867 (setq message-required-news-headers
1868   (remove' Message-ID message-required-news-headers))
1869               
1870 @end example
1871
1872 @noindent
1873  you can also tell Gnus not to generate Message-IDs for mail by saying
1874  
1875
1876 @example
1877
1878 (setq message-required-mail-headers
1879   (remove' Message-ID message-required-mail-headers))
1880               
1881 @end example
1882
1883 @noindent
1884  , however some mail servers don't generate proper
1885  Message-IDs, too, so test if your Mail Server behaves
1886  correctly by sending yourself a Mail and looking at the Message-ID.
1887  
1888
1889 @node [6] Old messages
1890 @section [6] Old messages
1891
1892 @menu
1893 * [6.1]:: How to import my old mail into Gnus? 
1894 * [6.2]:: How to archive interesting messages? 
1895 * [6.3]:: How to search for a specific message? 
1896 * [6.4]:: How to get rid of old unwanted mail? 
1897 * [6.5]:: I want that all read messages are expired (at least in some groups). How to do it? 
1898 * [6.6]:: I don't want expiration to delete my mails but to move them to another group. 
1899 @end menu
1900
1901 @node [6.1]
1902 @subsection [6.1]
1903 Question 6.1: 
1904
1905  How to import my old mail into Gnus?
1906  
1907
1908 Answer: 
1909
1910  The easiest way is to tell your old mail program to
1911  export the messages in mbox format. Most Unix mailers
1912  are able to do this, if you come from the MS Windows
1913  world, you may find tools at
1914  @uref{http://mbx2mbox.sourceforge.net/,http://mbx2mbox.sourceforge.net/}.
1915  
1916
1917  Now you've got to import this mbox file into Gnus. To do
1918  this, create a nndoc group based on the mbox file by
1919  saying @samp{G f /path/file.mbox RET} in
1920  Group buffer. You now have read-only access to your
1921  mail. If you want to import the messages to your normal
1922  Gnus mail groups hierarchy, enter the nndoc group you've
1923  just created by saying @samp{C-u RET}
1924  (thus making sure all messages are retrieved), mark all
1925  messages by saying @samp{M P b} and
1926  either copy them to the desired group by saying
1927  @samp{B c name.of.group RET} or send them
1928  through nnmail-split-methods (respool them) by saying
1929  @samp{B r}.
1930  
1931 @node [6.2]
1932 @subsection [6.2]
1933 Question 6.2: 
1934
1935  How to archive interesting messages?
1936  
1937
1938 Answer: 
1939
1940  If you stumble across an interesting message, say in
1941  gnu.emacs.gnus and want to archive it there are several
1942  solutions. The first and easiest is to save it to a file
1943  by saying @samp{O f}. However, wouldn't
1944  it be much more convenient to have more direct access to
1945  the archived message from Gnus? If you say yes, put this
1946  snippet by Frank Haun <pille3003@@fhaun.de> in
1947  ~/.gnus:
1948  
1949
1950 @example
1951
1952 (defun my-archive-article (&optional n)
1953   "Copies one or more article(s) to a corresponding `nnml:' group, e.g.
1954 `gnus.ding' goes to `nnml:1.gnus.ding'. And `nnml:List-gnus.ding' goes
1955 to `nnml:1.List-gnus-ding'.
1956
1957 Use process marks or mark a region in the summary buffer to archive
1958 more then one article."
1959   (interactive "P")
1960   (let ((archive-name
1961          (format
1962           "nnml:1.%s"
1963           (if (featurep 'xemacs)
1964               (replace-in-string gnus-newsgroup-name "^.*:" "")
1965             (replace-regexp-in-string "^.*:" "" gnus-newsgroup-name)))))
1966     (gnus-summary-copy-article n archive-name)))
1967               
1968 @end example
1969
1970 @noindent
1971  You can now say @samp{M-x
1972  my-archive-article} in summary buffer to
1973  archive the article under the cursor in a nnml
1974  group. (Change nnml to your preferred back end)
1975  
1976
1977  Of course you can also make sure the cache is enabled by saying
1978  
1979
1980 @example
1981
1982 (setq gnus-use-cache t)
1983               
1984 @end example
1985
1986 @noindent
1987  then you only have to set either the tick or the dormant
1988  mark for articles you want to keep, setting the read
1989  mark will remove them from cache.
1990  
1991 @node [6.3]
1992 @subsection [6.3]
1993 Question 6.3: 
1994
1995  How to search for a specific message?
1996  
1997
1998 Answer: 
1999
2000  There are several ways for this, too. For a posting from
2001  a Usenet group the easiest solution is probably to ask
2002  @uref{http://groups.google.com,groups.google.com},
2003  if you found the posting there, tell Google to display
2004  the raw message, look for the message-id, and say
2005  @samp{M-^ the@@message.id RET} in a
2006  summary buffer.
2007  Since Gnus 5.10.0 there's also a Gnus interface for
2008  groups.google.com which you can call with
2009  @samp{G W}) in group buffer.
2010  
2011
2012  Another idea which works for both mail and news groups
2013  is to enter the group where the message you are
2014  searching is and use the standard Emacs search
2015  @samp{C-s}, it's smart enough to look at
2016  articles in collapsed threads, too. If you want to
2017  search bodies, too try @samp{M-s}
2018  instead. Further on there are the
2019  gnus-summary-limit-to-foo functions, which can help you,
2020  too.
2021  
2022
2023  Of course you can also use grep to search through your
2024  local mail, but this is both slow for big archives and
2025  inconvenient since you are not displaying the found mail
2026  in Gnus. Here comes nnir into action. Nnir is a front end
2027  to search engines like swish-e or swish++ and
2028  others. You index your mail with one of those search
2029  engines and with the help of nnir you can search trough
2030  the indexed mail and generate a temporary group with all
2031  messages which met your search criteria. If this sound
2032  cool to you get nnir.el from
2033  @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/,ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/}
2034  or @uref{ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/,ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/}.
2035  Instructions on how to use it are at the top of the file.
2036  
2037 @node [6.4]
2038 @subsection [6.4]
2039 Question 6.4: 
2040
2041  How to get rid of old unwanted mail?
2042  
2043
2044 Answer: 
2045
2046  You can of course just mark the mail you don't need
2047  anymore by saying @samp{#} with point
2048  over the mail and then say @samp{B DEL}
2049  to get rid of them forever. You could also instead of
2050  actually deleting them, send them to a junk-group by
2051  saying @samp{B m nnml:trash-bin} which
2052  you clear from time to time, but both are not the intended
2053  way in Gnus.
2054  
2055
2056  In Gnus, we let mail expire like news expires on a news
2057  server. That means you tell Gnus the message is
2058  expirable (you tell Gnus "I don't need this mail
2059  anymore") by saying @samp{E} with point
2060  over the mail in summary buffer. Now when you leave the
2061  group, Gnus looks at all messages which you marked as
2062  expirable before and if they are old enough (default is
2063  older than a week) they are deleted. 
2064  
2065 @node [6.5]
2066 @subsection [6.5]
2067 Question 6.5: 
2068
2069  I want that all read messages are expired (at least in
2070  some groups). How to do it?
2071  
2072
2073 Answer: 
2074
2075  If you want all read messages to be expired (e.g. in
2076  mailing lists where there's an online archive), you've
2077  got two choices: auto-expire and
2078  total-expire. Auto-expire means, that every article
2079  which has no marks set and is selected for reading is
2080  marked as expirable, Gnus hits @samp{E}
2081  for you every time you read a message. Total-expire
2082  follows a slightly different approach, here all article
2083  where the read mark is set are expirable.
2084  
2085
2086  To activate auto-expire, include auto-expire in the
2087  Group parameters for the group. (Hit @samp{G
2088  c} in summary buffer with point over the
2089  group to change group parameters). For total-expire add
2090  total-expire to the group-parameters.
2091  
2092
2093  Which method you choose is merely a matter of taste:
2094  Auto-expire is faster, but it doesn't play together with
2095  Adaptive Scoring, so if you want to use this feature,
2096  you should use total-expire.
2097  
2098
2099  If you want a message to be excluded from expiration in
2100  a group where total or auto expire is active, set either
2101  tick (hit @samp{u}) or dormant mark (hit
2102  @samp{u}), when you use auto-expire, you
2103  can also set the read mark (hit
2104  @samp{d}).
2105  
2106 @node [6.6]
2107 @subsection [6.6]
2108 Question 6.6: 
2109
2110  I don't want expiration to delete my mails but to move them
2111  to another group.
2112  
2113
2114 Answer: 
2115
2116  Say something like this in ~/.gnus:
2117  
2118
2119 @example
2120
2121 (setq nnmail-expiry-target "nnml:expired")
2122               
2123 @end example
2124
2125 @noindent
2126  (If you want to change the value of nnmail-expiry-target
2127  on a per group basis see the question "How can I disable
2128  threading in some (e.g. mail-) groups, or set other
2129  variables specific for some groups?")
2130  
2131
2132 @node [7] Gnus in a dial-up environment
2133 @section [7] Gnus in a dial-up environment
2134
2135 @menu
2136 * [7.1]:: I don't have a permanent connection to the net, how can I minimize the time I've got to be connected? 
2137 * [7.2]:: So what was this thing about the Agent? 
2138 * [7.3]:: I want to store article bodies on disk, too. How to do it? 
2139 * [7.4]:: How to tell Gnus not to try to send mails / postings while I'm offline? 
2140 @end menu
2141
2142 @node [7.1]
2143 @subsection [7.1]
2144 Question 7.1: 
2145
2146  I don't have a permanent connection to the net, how can
2147  I minimize the time I've got to be connected?
2148  
2149
2150 Answer: 
2151
2152  You've got basically two options: Either you use the
2153  Gnus Agent (see below) for this, or you can install
2154  programs which fetch your news and mail to your local
2155  disk and Gnus reads the stuff from your local
2156  machine.
2157  
2158
2159  If you want to follow the second approach, you need a
2160  program which fetches news and offers them to Gnus, a
2161  program which does the same for mail and a program which
2162  receives the mail you write from Gnus and sends them
2163  when you're online.
2164  
2165
2166  Let's talk about Unix systems first: For the news part,
2167  the easiest solution is a small nntp server like 
2168  @uref{http://www.leafnode.org/,Leafnode} or
2169  @uref{http://infa.abo.fi/~patrik/sn/,sn},
2170  of course you can also install a full featured news
2171  server like 
2172  @uref{http://www.isc.org/products/INN/,inn}. 
2173  Then you want to fetch your Mail, popular choices
2174  are @uref{http://www.catb.org/~esr/fetchmail/,fetchmail}
2175  and @uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/,getmail}.
2176  You should tell those to write the mail to your disk and
2177  Gnus to read it from there. Last but not least the mail
2178  sending part: This can be done with every MTA like
2179  @uref{http://www.sendmail.org/,sendmail},
2180  @uref{http://www.qmail.org/,postfix},
2181  @uref{http://www.exim.org/,exim} or
2182  @uref{http://www.qmail.org/,qmail}.
2183  
2184
2185  On windows boxes I'd vote for 
2186  @uref{http://www.tglsoft.de/,Hamster}, 
2187  it's a small freeware, open-source program which fetches
2188  your mail and news from remote servers and offers them
2189  to Gnus (or any other mail and/or news reader) via nntp
2190  respectively POP3 or IMAP. It also includes a smtp
2191  server for receiving mails from Gnus.
2192  
2193 @node [7.2]
2194 @subsection [7.2]
2195 Question 7.2: 
2196
2197  So what was this thing about the Agent?
2198  
2199
2200 Answer: 
2201
2202  The Gnus agent is part of Gnus, it allows you to fetch
2203  mail and news and store them on disk for reading them
2204  later when you're offline. It kind of mimics offline
2205  newsreaders like e.g. Forte Agent. If you want to use
2206  the Agent place the following in ~/.gnus if you are
2207  still using 5.8.8 or 5.9 (it's the default since 5.10.0):
2208  
2209
2210 @example
2211
2212 (setq gnus-agent t)
2213               
2214 @end example
2215  
2216
2217  Now you've got to select the servers whose groups can be
2218  stored locally. To do this, open the server buffer
2219  (that is press @samp{^} while in the
2220  group buffer). Now select a server by moving point to
2221  the line naming that server. Finally, agentize the
2222  server by typing @samp{J a}. If you
2223  make a mistake, or change your mind, you can undo this
2224  action by typing @samp{J r}. When
2225  you're done, type 'q' to return to the group buffer.
2226  Now the next time you enter a group on a agentized
2227  server, the headers will be stored on disk and read from
2228  there the next time you enter the group.
2229  
2230 @node [7.3]
2231 @subsection [7.3]
2232 Question 7.3: 
2233
2234  I want to store article bodies on disk, too. How to do it?
2235  
2236
2237 Answer: 
2238
2239  You can tell the agent to automatically fetch the bodies
2240  of articles which fulfill certain predicates, this is
2241  done in a special buffer which can be reached by
2242  saying @samp{J c} in group
2243  buffer. Please refer to the documentation for
2244  information which predicates are possible and how
2245  exactly to do it. 
2246  
2247
2248  Further on you can tell the agent manually which
2249  articles to store on disk. There are two ways to do
2250  this: Number one: In the summary buffer, process mark a
2251  set of articles that shall be stored in the agent by
2252  saying @samp{#} with point over the
2253  article and then type @samp{J s}. The
2254  other possibility is to set, again in the summary
2255  buffer, downloadable (%) marks for the articles you
2256  want by typing @samp{@@} with point over
2257  the article and then typing @samp{J u}.
2258  What's the difference? Well, process marks are erased as
2259  soon as you exit the summary buffer while downloadable
2260  marks are permanent. You can actually set downloadable
2261  marks in several groups then use fetch session ('J s' in
2262  the GROUP buffer) to fetch all of those articles. The
2263  only downside is that fetch session also fetches all of
2264  the headers for every selected group on an agentized
2265  server. Depending on the volume of headers, the initial
2266  fetch session could take hours.
2267  
2268 @node [7.4]
2269 @subsection [7.4]
2270 Question 7.4: 
2271
2272  How to tell Gnus not to try to send mails / postings
2273  while I'm offline?
2274  
2275
2276 Answer: 
2277
2278  All you've got to do is to tell Gnus when you are online
2279  (plugged) and when you are offline (unplugged), the rest
2280  works automatically. You can toggle plugged/unplugged
2281  state by saying @samp{J j} in group
2282  buffer. To start Gnus unplugged say @samp{M-x
2283  gnus-unplugged} instead of
2284  @samp{M-x gnus}. Note that for this to
2285  work, the agent must be active.
2286  
2287
2288 @node [8] Getting help
2289 @section [8] Getting help
2290
2291 @menu
2292 * [8.1]:: How to find information and help inside Emacs? 
2293 * [8.2]:: I can't find anything in the Gnus manual about X (e.g. attachments, PGP, MIME...), is it not documented? 
2294 * [8.3]:: Which websites should I know? 
2295 * [8.4]:: Which mailing lists and newsgroups are there? 
2296 * [8.5]:: Where to report bugs? 
2297 * [8.6]:: I need real-time help, where to find it? 
2298 @end menu
2299
2300 @node [8.1]
2301 @subsection [8.1]
2302 Question 8.1: 
2303
2304  How to find information and help inside Emacs?
2305  
2306
2307 Answer: 
2308
2309  The first stop should be the Gnus manual (Say
2310  @samp{C-h i d m Gnus RET} to start the
2311  Gnus manual, then walk through the menus or do a
2312  full-text search with @samp{s}). Then
2313  there are the general Emacs help commands starting with
2314  C-h, type @samp{C-h ? ?} to get a list
2315  of all available help commands and their meaning. Finally
2316  @samp{M-x apropos-command} lets you
2317  search through all available functions and @samp{M-x
2318  apropos} searches the bound variables.
2319  
2320 @node [8.2]
2321 @subsection [8.2]
2322 Question 8.2: 
2323
2324  I can't find anything in the Gnus manual about X
2325  (e.g. attachments, PGP, MIME...), is it not documented?
2326  
2327
2328 Answer: 
2329
2330  There's not only the Gnus manual but also the manuals
2331  for message, emacs-mime, sieve and pgg. Those packages
2332  are distributed with Gnus and used by Gnus but aren't
2333  really part of core Gnus, so they are documented in
2334  different info files, you should have a look in those
2335  manuals, too.
2336  
2337 @node [8.3]
2338 @subsection [8.3]
2339 Question 8.3: 
2340
2341  Which websites should I know?
2342  
2343
2344 Answer: 
2345
2346  The two most important ones are the
2347  @uref{http://www.gnus.org,official Gnus website}.
2348  and it's sister site 
2349  @uref{http://my.gnus.org,my.gnus.org (MGO)},
2350  hosting an archive of lisp snippets, howtos, a (not
2351  really finished) tutorial and this FAQ.
2352  
2353
2354  Tell me about other sites which are interesting.
2355  
2356 @node [8.4]
2357 @subsection [8.4]
2358 Question 8.4: 
2359
2360  Which mailing lists and newsgroups are there?
2361  
2362
2363 Answer: 
2364
2365  There's the newsgroup gnu.emacs.gnus (pull it from
2366  e.g. news.gnus.org) which deals with general questions
2367  and the ding mailing list (ding@@gnus.org) dealing with
2368  development of Gnus. You can read the ding list via
2369  NNTP, too under the name gnus.ding from news.gnus.org.
2370  
2371
2372  If you want to stay in the big8,
2373  news.software.newssreaders is also read by some Gnus
2374  users (but chances for qualified help are much better in
2375  the above groups) and if you speak German, there's
2376  de.comm.software.gnus.
2377  
2378 @node [8.5]
2379 @subsection [8.5]
2380 Question 8.5: 
2381
2382  Where to report bugs?
2383  
2384
2385 Answer: 
2386
2387  Say @samp{M-x gnus-bug}, this will start
2388  a message to the 
2389  @uref{mailto:bugs@@gnus.org,gnus bug mailing list}
2390  including information about your environment which make
2391  it easier to help you.
2392  
2393 @node [8.6]
2394 @subsection [8.6]
2395 Question 8.6: 
2396
2397  I need real-time help, where to find it?
2398  
2399
2400 Answer: 
2401
2402  Point your IRC client to irc.my.gnus.org channel
2403  #mygnus. Don't be afraid if people there speak German,
2404  they are willing and capable of switching to
2405  English when people from outside Germany enter.
2406  
2407
2408 @node [9] Tuning Gnus
2409 @section [9] Tuning Gnus
2410
2411 @menu
2412 * [9.1]:: Starting Gnus is really slow, how to speed it up? 
2413 * [9.2]:: How to speed up the process of entering a group? 
2414 * [9.3]:: Sending mail becomes slower and slower, what's up? 
2415 @end menu
2416
2417 @node [9.1]
2418 @subsection [9.1]
2419 Question 9.1: 
2420
2421  Starting Gnus is really slow, how to speed it up?
2422  
2423
2424 Answer: 
2425
2426  The reason for this could be the way Gnus reads it's
2427  active file, see the node "The Active File" in the Gnus
2428  manual for things you might try to speed the process up.
2429  An other idea would be to byte compile your ~/.gnus (say
2430  @samp{M-x byte-compile-file RET ~/.gnus
2431  RET} to do it). Finally, if you have require
2432  statements in your .gnus, you could replace them with
2433  eval-after-load, which loads the stuff not at startup
2434  time, but when it's needed. Say you've got this in your
2435  ~/.gnus:
2436  
2437
2438 @example
2439
2440 (require 'message)
2441 (add-to-list 'message-syntax-checks '(sender . disabled))
2442               
2443 @end example
2444
2445 @noindent
2446  then as soon as you start Gnus, message.el is loaded. If
2447  you replace it with
2448  
2449
2450 @example
2451
2452 (eval-after-load "message"
2453       '(add-to-list 'message-syntax-checks '(sender . disabled)))
2454               
2455 @end example
2456
2457 @noindent
2458  it's loaded when it's needed.
2459  
2460 @node [9.2]
2461 @subsection [9.2]
2462 Question 9.2: 
2463
2464  How to speed up the process of entering a group?
2465  
2466
2467 Answer: 
2468
2469  A speed killer is setting the variable
2470  gnus-fetch-old-headers to anything different from nil,
2471  so don't do this if speed is an issue. To speed up
2472  building of summary say
2473  
2474
2475 @example
2476
2477 (gnus-compile)
2478               
2479 @end example
2480
2481 @noindent
2482  at the bottom of your ~/.gnus, this will make gnus
2483  byte-compile things like
2484  gnus-summary-line-format. 
2485  then you could increase the value of gc-cons-threshold
2486  by saying something like
2487  
2488
2489 @example
2490
2491 (setq gc-cons-threshold 3500000)
2492               
2493 @end example
2494
2495 @noindent
2496  in ~/.emacs. If you don't care about width of CJK
2497  characters or use Gnus 5.10.0 or younger together with a
2498  recent GNU Emacs, you should say
2499  
2500
2501 @example
2502
2503 (setq gnus-use-correct-string-widths nil) 
2504               
2505 @end example
2506  
2507
2508 @noindent
2509  in ~/.gnus (thanks to Jesper harder for the last
2510  two suggestions). Finally if you are still using 5.8.8
2511  or 5.9 and experience speed problems with summary
2512  buffer generation, you definitely should update to
2513  5.10.0 since there quite some work on improving it has
2514  been done.
2515  
2516 @node [9.3]
2517 @subsection [9.3]
2518 Question 9.3: 
2519
2520  Sending mail becomes slower and slower, what's up?
2521  
2522
2523 Answer: 
2524
2525  The reason could be that you told Gnus to archive the
2526  messages you wrote by setting
2527  gnus-message-archive-group. Try to use a nnml group
2528  instead of an archive group, this should bring you back
2529  to normal speed.
2530  
2531
2532 @node Glossary, , Frequently Asked Questions with Answers, Top
2533 @chapter Glossary
2534
2535 @table @asis
2536
2537 @item ~/.gnus
2538  When the term ~/.gnus is used it just means your Gnus
2539  configuration file. You might as well call it ~/.gnus.el or
2540  specify another name.
2541  
2542
2543 @item Back End
2544  In Gnus terminology a back end is a virtual server, a layer
2545  between core Gnus and the real NNTP-, POP3-, IMAP- or
2546  whatever-server which offers Gnus a standardized interface
2547  to functions like "get message", "get Headers" etc.
2548  
2549
2550 @item Emacs
2551  When the term Emacs is used in this FAQ, it means either GNU
2552  Emacs or XEmacs.
2553  
2554
2555 @item Message
2556  In this FAQ message means a either a mail or a posting to a
2557  Usenet Newsgroup or to some other fancy back end, no matter
2558  of which kind it is.
2559  
2560
2561 @item MUA
2562  MUA is an acronym for Mail User Agent, it's the program you
2563  use to read and write e-mails.
2564  
2565
2566 @item NUA
2567  NUA is an acronym for News User Agent, it's the program you
2568  use to read and write Usenet news.
2569  
2570 @end table
2571
2572 @bye