2007-08-07 [wwp] 2.10.0cvs97
[claws.git] / manual / advanced.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <section id="ch_advanced">
3   <title>Advanced features</title>
4   <section id="adv_actions">
5     <title>Actions</title>
6     <para>
7         Actions allow you to use all the power of the Unix command-line with 
8         your emails. You can define various commands, taking parameters such 
9         as the current email file, a list of emails, the currently selected 
10         text, and so on. In this way, you'll be able to perform various tasks
11         such as editing a raw mail in your text editor, 
12         <emphasis>hide</emphasis> what you mean using ROT-13, apply patches 
13         contained in emails directly, and so on. The only limit is your 
14         imagination. You can configure Actions via the <quote>Tools</quote> 
15         menu.
16     </para>
17     <blockquote>
18       <example>
19         <title>Simple <quote>Open With...</quote></title>
20         <variablelist>
21           <varlistentry>
22             <term>
23         Menu name: <emphasis>Open with/kate</emphasis> 
24         Command Line: <command>kate %p</command>
25             </term>
26             <listitem>
27               <para>
28         Opens the file of the selected decoded MIME part 
29         (<emphasis>%p</emphasis>) with the <emphasis>kate</emphasis> text 
30         editor.
31               </para>
32             </listitem>
33           </varlistentry>
34         </variablelist>
35       </example>
36       <example>
37         <title>Spam management using <ulink 
38           url="http://bogofilter.sourceforge.net/">Bogofilter</ulink>
39         </title>
40         <variablelist>
41           <varlistentry>
42             <term>
43         Menu name: <emphasis>Bogofilter/Mark as Ham</emphasis> 
44         Command Line: <command>bogofilter -n -v -B "%f"</command>
45             </term>
46             <listitem>
47               <para>
48         Marks the currently selected mails (<emphasis>%f</emphasis>) as
49         <quote>not spam</quote> using <emphasis>Bogofilter</emphasis>.
50               </para>
51             </listitem>
52           </varlistentry>
53           <varlistentry>
54             <term>
55         Menu name: <emphasis>Bogofilter/Mark as Spam</emphasis> 
56         Command Line: <command>bogofilter -s -v -B "%f"</command>
57             </term>
58             <listitem>
59               <para>
60         Marks the currently selected mails (<emphasis>%f</emphasis>) as 
61         <quote>spam</quote> using <emphasis>Bogofilter</emphasis>.
62               </para>
63             </listitem>
64           </varlistentry>
65         </variablelist>
66       </example>
67       <example>
68         <title>Search Google using an external script</title>
69         <variablelist>
70           <varlistentry>
71             <term>
72         Menu name: <emphasis>Search/Google</emphasis> 
73         Command Line: <command>|/path/to/google_search.pl</command>
74             </term>
75             <listitem>
76               <para>
77         Searches Google for the currently selected text 
78         (<emphasis>|</emphasis>) using the external script <emphasis><ulink 
79         url="http://www.claws-mail.org/tools.php"
80         >google_search.pl</ulink></emphasis>.
81               </para>
82             </listitem>
83           </varlistentry>
84         </variablelist>
85       </example>
86     </blockquote>
87   </section>
88   <section id="adv_templates">
89     <title>Templates</title>
90     <para>
91         Templates are used in composition windows, and act as a model for 
92         emails. Templates can be filled with static text and dynamic parts, 
93         such as the original sender's name (<quote>Dear %N, ...</quote>), 
94         the date, etc. When applying a template, the dynamic fields will be 
95         replaced with the relevant values. You can configure templates via 
96         the <quote>Tools</quote> menu.
97     </para><para>
98         When applying a template, you will be asked to <quote>Insert</quote>
99         or <quote>Replace</quote>, the difference between replacing and 
100         inserting is only concerned with the message body. 
101         <quote>Replace</quote> will replace the current composition window 
102         message body with the body defined in the template, clearing it if 
103         the template body is empty. <quote>Insert</quote> will insert 
104         the template's body, if set, at the current cursor position.
105     </para><para>
106         Whether you choose to Insert or Replace, any To, Cc or Bcc field 
107         that is defined in the template will be appended to the compose 
108         window's recipients list. If it is defined, the template's Subject 
109         will always replace the compose window's Subject.
110     </para><para>
111         Symbols can be used in all parts of the templates and will be 
112         substituted with their respective dynamic value if possible, otherwise 
113         no value will be used. This often makes more sense if you apply a 
114         template when replying or forwarding, otherwise most of the symbols 
115         value will be undefined. There is no restriction on which symbols can 
116         be used in template parts, even if inserting the body (%M or %Q) may 
117         make no sense in common situations.
118     </para><para>
119         When applying a template, the body is processed first, then the To, Cc,
120         Bcc and Subject fields follow.
121     </para><para>
122         Further information and examples of usage can be found in the 
123         user-contributed FAQ on the Claws Mail website <ulink 
124         url="http://www.claws-mail.org/faq/"
125         >http://www.claws-mail.org/faq/</ulink>.
126     </para>
127    </section>
128   <section id="adv_processing">
129     <title>Processing</title>
130     <para>
131         Processing rules are the same as Filtering rules, except that they are 
132         applied when entering a folder or when manually applied from a folder's
133         context menu and apply only     to this folder. You can use them to automatically
134         move old mails into an archive folder, or for further dispatching of
135         emails, and more. You can set each folder's Processing rules by
136         right-clicking on it.
137     </para><para>
138         Processing rules are accompanied by Pre-processing and Post-processing 
139         rules. Like Processing rules, they apply when opening a folder or manually
140         applying them from a folder's context menu, but like Filtering rules,
141         they are shared across all folders. You can configure them from the
142         <quote>Tools</quote> menu. Pre-processing rules are executed before the
143         folder's specific Processing rules, while Post-processing rules are executed
144         afterwards.
145     </para>
146   </section>
147   <section id="adv_colour_labels">
148     <title>Colour Labels</title>
149     <para>
150         Colour labels can be used to denote a message as having a particular 
151         significance. To set a colour label simply right-click a message in the
152         Message List and use the <quote>Color label</quote> submenu.
153     </para><para>
154         Colour labels are user-configurable. Both the colour and the label can 
155         be set by the user. Preferences can be found on the 
156         <quote>Configuration/Preferences/Display/Colors</quote> page.
157     </para>
158   </section>
159   <section id="adv_ml_support">
160     <title>Mailing-List support</title>
161     <para>
162         Claws Mail offers mailing-list support from the 
163         <quote>Message/Mailing-List/</quote> submenu. When you have a 
164         mailing-list message selected, the submenu allows you to quickly 
165         initiate subscribing, unsubscribing, posting, getting help, contacting 
166         the list owner, and viewing the list archive; either by opening a new 
167         Compose window with the appropriate address pre-filled, or by opening 
168         the URL in your web browser.
169     </para>
170   </section>
171   <section id="adv_plugins">
172     <title>Plugins</title>
173     <para>
174         Plugins are the mechanism for extending Claws Mail' capabilities. 
175         For example, imagine that you want to store your mails in a remote 
176         <acronym>SQL</acronym> database. In most mailers out there this is 
177         simply impossible without reworking the internals of the mailer. With 
178         Claws Mail you can simply write a plugin to achieve the task.
179     </para><para>
180         This is just an example of the possibilities. A good number of plugins 
181         developed for Claws Mail already exist, and more are to come. The 
182         <link linkend="ch_plugins">Extending Claws Mail section</link> 
183         gives details of them.
184     </para>
185   </section>
186   <section id="deploying">
187     <title>Deploying Claws Mail</title>
188     <para>
189         The initial configuration wizard tries to guess various fields using 
190         information gathered from the system, such as username, hostname, and 
191         more. As it is oriented towards general use, the default values often 
192         have to be fixed. However, this wizard is customisable, in a manner 
193         designed to allow system administrators to deploy Claws Mail easily
194         over various users of one machine, or even over multiple machines 
195         installed via some replication tool.
196     </para><para>
197         The first part consists of creating a wizard configuration template 
198         and setting the various default parameters of a new Claws Mail 
199         installation.
200     </para>
201     <itemizedlist>
202       <listitem>
203         <para>
204         Start with a user who does not have a <filename class="directory"
205         >~/.claws-mail</filename> directory, ideally a new user.
206         </para>
207       </listitem>
208       <listitem>
209         <para>
210         Start Claws Mail and go through the wizard. The values you fill in 
211         will be of no use for the future deployment, so you can click 
212         next-next-next.
213         </para>
214       </listitem>
215       <listitem>
216         <para>
217         Once the wizard is finished and you have Claws Mail' main window 
218         opened, configure the various defaults you want to have in the master. 
219         You can load plugins, add people or LDAP servers in the addressbook, 
220         create filtering rules, and so on.
221         </para>
222       </listitem>
223       <listitem>
224         <para>
225         If needed, and if the deployed Claws Mail will use MH folders, you 
226         can create subdirectories in the mailbox.
227         </para>
228       </listitem>
229       <listitem>
230         <para>
231         Next, quit Claws Mail.
232         </para>
233       </listitem>
234       <listitem>
235         <para>
236         Now, edit the newly created wizard template file, 
237         <filename>~/.claws-mail/accountrc.tmpl</filename>. In this file, 
238         you will see different variables, corresponding to the wizard's fields.
239         You can leave some commented, in which case the usual default will be 
240         used, or specify values or variables. Not all fields can contain 
241         variables; for example, <literal>smtpauth</literal>, 
242         <literal>smtpssl</literal> and <literal>recvssl</literal> are booleans,
243         either 0 or 1, and <literal>recvtype</literal> is an integer value. The
244         other fields, like <literal>name</literal>, <literal>email</literal>, 
245         or <literal>recvuser</literal>, are parsed by the wizard and the 
246         variables they contain are replaced by values. This allows you to 
247         specify everything as needed for your site, even if you have strange 
248         server names or server logins.
249         </para>
250       </listitem>
251       <listitem>
252         <para>
253         Save this file, and delete both 
254         <filename>~/.claws-mail/accountrc</filename>, (which contains your 
255         dummy account) and 
256         <filename>~/.claws-mail/folderlist.xml</filename>, (so that the 
257         folder tree will be correctly parsed for new users). Recursively copy 
258         <filename class="directory">.claws-mail</filename> to 
259         <filename class="directory">/etc/skel/</filename>; if the deployed 
260         Claws Mail will use MH folders, also copy the created 
261         <filename class="directory">Mail</filename> directory. chown all of 
262         <filename class="directory">/etc/skel/.claws-mail</filename> 
263         and <filename class="directory">/etc/skel/Mail</filename> to 
264         <literal>root:root</literal> for security reasons.
265         </para>
266       </listitem>
267       <listitem>
268         <para>
269         Test! Create a new user, login as that user, run Claws Mail. If you
270         filled everything as you wanted, this user will just have to fill in 
271         his passwords.
272         </para>
273       </listitem>
274       <listitem>
275         <para>
276         Now, if you're creating a master for a site-wide deployment, you can 
277         continue with this process. If you were just doing it for one machine, 
278         you're done!
279         </para>
280       </listitem>
281     </itemizedlist>
282     <para>
283     Here are the different variables of the <filename>accountrc.tmpl</filename>
284     file:
285     </para>
286     <variablelist>
287       <varlistentry>
288         <term><literal>domain</literal></term>
289         <listitem>
290           <para>
291         Your domain name (example.com). If not set, it'll be extracted from the
292         hostname.
293           </para>
294         </listitem>
295       </varlistentry>
296       <varlistentry>
297         <term><literal>name</literal></term>
298         <listitem>
299           <para>
300         The user's name. If not set, it'll be extracted from Unix login 
301         information, which is usually ok.
302           </para>
303         </listitem>
304       </varlistentry>
305       <varlistentry>
306         <term><literal>email</literal></term>
307         <listitem>
308           <para>
309         The user's email. If not set, it'll be extracted from 
310         <literal>$name</literal> and <literal>$domain</literal>.
311           </para>
312         </listitem>
313       </varlistentry>
314       <varlistentry>
315         <term><literal>organization</literal></term>
316         <listitem>
317           <para>
318         Your organization. If not set, it'll be empty.
319           </para>
320         </listitem>
321       </varlistentry>
322       <varlistentry>
323         <term><literal>smtpserver</literal></term>
324         <listitem>
325           <para>
326         The SMTP server to use. If not set, it'll be 
327         <literal>smtp.$domain</literal>.
328           </para>
329         </listitem>
330       </varlistentry>
331       <varlistentry>
332         <term><literal>smtpauth</literal></term>
333         <listitem>
334           <para>
335         0 or 1. Whether to authenticate on the SMTP server. If not set, it'll 
336         be 0.
337           </para>
338         </listitem>
339       </varlistentry>
340       <varlistentry>
341         <term><literal>smtpuser</literal></term>
342         <listitem>
343           <para>
344         The login on the SMTP server. If not set, it'll be empty (same login as
345         for reception will be used).
346           </para>
347         </listitem>
348       </varlistentry>
349       <varlistentry>
350         <term><literal>smtppass</literal></term>
351         <listitem>
352           <para>
353         The password on the SMTP server. If not set, it'll be empty (if 
354         <literal>smtppass</literal> is empty but <literal>smtpuser</literal> is
355         not, the user will be asked for the password).
356           </para>
357         </listitem>
358       </varlistentry>
359       <varlistentry>
360         <term><literal>recvtype</literal></term>
361         <listitem>
362           <para>
363         The type of server to receive from. 0 for POP3, 3 for IMAP4, 5 for a 
364         local MBOX file. If not set, it'll be 0 (POP3).
365           </para>
366         </listitem>
367       </varlistentry>
368       <varlistentry>
369         <term><literal>recvserver</literal></term>
370         <listitem>
371           <para>
372         The reception server. If not set, it'll be 
373         <literal>(pop|imap).$domain</literal>, depending on 
374         <literal>$recvtype</literal>.
375           </para>
376         </listitem>
377       </varlistentry>
378       <varlistentry>
379         <term><literal>recvuser</literal></term>
380         <listitem>
381           <para>
382         The login on the reception server. If not set, it'll be extracted from 
383         the Unix login information.
384           </para>
385         </listitem>
386       </varlistentry>
387       <varlistentry>
388         <term><literal>recvpass</literal></term>
389         <listitem>
390           <para>
391         The password on the reception server. If not set, it'll be empty (the 
392         user will be asked for it once per session).
393           </para>
394         </listitem>
395       </varlistentry>
396       <varlistentry>
397         <term><literal>imapdir</literal></term>
398         <listitem>
399           <para>
400         The IMAP subdirectory. If not set, it'll be empty, which is often 
401         sufficient.
402           </para>
403         </listitem>
404       </varlistentry>
405       <varlistentry>
406         <term><literal>mboxfile</literal></term>
407         <listitem>
408           <para>
409         The MBOX file to receive from if <literal>$recvtype</literal> is 5. 
410         If not set, <literal>/var/mail/$LOGIN</literal>.
411           </para>
412         </listitem>
413       </varlistentry>
414       <varlistentry>
415         <term><literal>mailbox</literal></term>
416         <listitem>
417           <para>
418         The MH mailbox to store mail in (for <literal>$recvtype</literal> 0 or 
419         5). If not set, it'll be <quote>Mail</quote>.
420           </para>
421         </listitem>
422       </varlistentry>
423       <varlistentry>
424         <term><literal>smtpssl</literal></term>
425         <listitem>
426           <para>
427         0 or 1. Whether to use SSL for sending mail. If not set, it'll be 0.
428           </para>
429         </listitem>
430       </varlistentry>
431       <varlistentry>
432         <term><literal>recvssl</literal></term>
433         <listitem>
434           <para>
435         0 or 1. Whether to use SSL for receiving mail. If not set, it'll be 0.
436           </para>
437         </listitem>
438       </varlistentry>
439     </variablelist>
440     <para>
441         Here are the different variables you can use in the 
442         <literal>domain</literal>, <literal>name</literal>, 
443         <literal>email</literal>, <literal>organization</literal>, 
444         <literal>smtpserver</literal>, <literal>smtpuser</literal>, 
445         <literal>smtppass</literal>, <literal>recvserver</literal>, 
446         <literal>recvuser</literal>, <literal>recvpass</literal>, 
447         <literal>imapdir</literal>, <literal>mboxfile</literal> and 
448         <literal>mailbox</literal> fields:
449     </para>
450     <variablelist>
451       <varlistentry>
452         <term><literal>$DEFAULTDOMAIN</literal></term>
453         <listitem>
454           <para>
455         The domain name as extracted from Unix hostname information. 
456         Often wrong.
457           </para>
458         </listitem>
459       </varlistentry>
460       <varlistentry>
461         <term><literal>$DOMAIN</literal></term>
462         <listitem>
463           <para>
464         The domain name as set in the domain variable, the first of the 
465         template file.
466           </para>
467         </listitem>
468       </varlistentry>
469       <varlistentry>
470         <term><literal>$USERNAME</literal></term>
471         <listitem>
472           <para>The user's real name.</para>
473         </listitem>
474       </varlistentry>
475       <varlistentry>
476         <term><literal>$LOGIN</literal></term>
477         <listitem>
478           <para>The user's Unix login.</para>
479         </listitem>
480       </varlistentry>
481       <varlistentry>
482         <term><literal>$NAME_MAIL</literal></term>
483         <listitem>
484           <para>
485         The user's real name as set in the name variable of the template field,
486         in lowercase and with spaces replaced by dots. 
487         <quote>Colin Leroy</quote> becomes <quote>colin.leroy</quote>.
488           </para>
489         </listitem>
490       </varlistentry>
491       <varlistentry>
492         <term><literal>$EMAIL</literal></term>
493         <listitem>
494           <para>
495         The email address as set in the email variable of the template field.
496           </para>
497         </listitem>
498       </varlistentry>
499     </variablelist>
500     <para>
501         Be sure not to use a variable before defining it.
502     </para>
503   </section>
504   <section id="adv_hidden">
505     <title>Hidden preferences</title>
506     <para>
507         There are a number of hidden preferences in Claws Mail, preferences
508         that some users who we wanted to please couldn't live without, but 
509         which did not have a place in the GUI in our opinion. You can find the 
510         following, and change them while Claws Mail is not running, in 
511         <filename>~/.claws-mail/clawsrc</filename>.
512     </para>
513     <variablelist>
514       <varlistentry>
515         <term><literal>addressbook_use_editaddress_dialog</literal></term>
516         <listitem>
517           <para>
518         Use a separate dialogue to edit a person's details. 
519         '0' will use a form embedded in the addressbook's main window.
520           </para>
521         </listitem>
522       </varlistentry>
523       <varlistentry>
524         <term><literal>bold_unread</literal></term>
525         <listitem>
526           <para>
527         Show unread messages in the Message List using a bold font.
528           </para>
529         </listitem>
530       </varlistentry>
531       <varlistentry>
532         <term><literal>cache_max_mem_usage</literal></term>
533         <listitem>
534           <para>
535         The maximum amount of memory to use to cache messages, in kB.
536           </para>
537         </listitem>
538       </varlistentry>
539       <varlistentry>
540         <term><literal>cache_min_keep_time</literal></term>
541         <listitem>
542           <para>
543         The minimum time in minutes to keep a cache in memory. Caches more 
544         recent than this time will not be freed, even if the memory usage is 
545         too high.
546           </para>
547         </listitem>
548       </varlistentry>
549       <varlistentry>
550         <term><literal>compose_no_markup</literal></term>
551         <listitem>
552           <para>
553         Don't use bold and italic text in Compose dialogue's account selector.
554           </para>
555         </listitem>
556       </varlistentry>
557       <varlistentry>
558         <term><literal>enable_dotted_lines</literal></term>
559         <listitem>
560           <para>
561         Use the <emphasis>old</emphasis> dotted line look in the main window
562         GtkTreeView components, (Folder List and Message List), instead of the
563         <emphasis>modern</emphasis> lineless look.
564           </para>
565         </listitem>
566       </varlistentry>
567       <varlistentry>
568         <term><literal>enable_hscrollbar</literal></term>
569         <listitem>
570           <para>
571         Enable the horizontal scrollbar in the Message List.
572           </para>
573         </listitem>
574       </varlistentry>
575       <varlistentry>
576         <term><literal>enable_swap_from</literal></term>
577         <listitem>
578           <para>
579         Display the sender's email address in the To column of the
580         Sent folder instead of the recipient's.
581           </para>
582         </listitem>
583       </varlistentry>
584       <varlistentry>
585         <term><literal>folderview_vscrollbar_policy</literal></term>
586         <listitem>
587           <para>
588         Specify the policy of vertical scrollbar of Folder List.
589         '0' is always shown, '1' is automatic, '2' is always hidden.
590           </para>
591         </listitem>
592       </varlistentry>
593       <varlistentry>
594         <term><literal>hover_timeout</literal></term>
595         <listitem>
596           <para>
597         Time in milliseconds that will cause a folder tree to expand 
598         when the mouse cursor is held over it during drag 'n' drop.
599           </para>
600         </listitem>
601       </varlistentry>
602       <varlistentry>
603         <term><literal>live_dangerously</literal></term>
604         <listitem>
605           <para>
606         Don't ask for confirmation before definitive deletion of emails.
607           </para>
608         </listitem>
609       </varlistentry>
610       <varlistentry>
611         <term><literal>log_error_color</literal></term>
612         <term><literal>log_in_color</literal></term>
613         <term><literal>log_msg_color</literal></term>
614         <term><literal>log_out_color</literal></term>
615         <term><literal>log_warn_color</literal></term>
616         <listitem>
617           <para>
618         The colours used in the log window.
619           </para>
620         </listitem>
621       </varlistentry>
622       <varlistentry>
623         <term><literal>respect_flowed_format</literal></term>
624         <listitem>
625           <para>
626         0 or 1. Respect format=flowed on text/plain message parts. This
627         will cause some mails to have long lines, but will fix some URLs
628         that would otherwise be wrapped. Default is 0, turned off.
629           </para>
630         </listitem>
631       </varlistentry>
632       <varlistentry>
633         <term><literal>skip_ssl_cert_check</literal></term>
634         <listitem>
635           <para>
636         Disables the verification of SSL certificates.
637           </para>
638         </listitem>
639       </varlistentry>
640       <varlistentry>
641         <term><literal>statusbar_update_step</literal></term>
642         <listitem>
643           <para>
644         Update stepping in progress bars.
645           </para>
646         </listitem>
647       </varlistentry>
648       <varlistentry>
649         <term><literal>stripes_color_offset</literal></term>
650         <listitem>
651         <para>
652         Specify the value to use when creating alternately coloured lines in
653         GtkTreeView components. The smaller the value, the less visible the
654         difference in the alternating colours of the lines.
655         </para>
656         </listitem>
657       </varlistentry>
658       <varlistentry>
659         <term><literal>textview_cursor_visible</literal></term>
660         <listitem>
661           <para>
662         Display the cursor in the message view.
663           </para>
664         </listitem>
665       </varlistentry>
666       <varlistentry>
667         <term><literal>thread_by_subject_max_age</literal></term>
668         <listitem>
669           <para>
670         Number of days to include a message in a thread when using 
671         <quote>Thread using subject in addition to standard headers</quote>.
672           </para>
673         </listitem>
674       </varlistentry>
675       <varlistentry>
676         <term><literal>toolbar_detachable</literal></term>
677         <listitem>
678           <para>
679         Show handles in the toolbars.
680           </para>
681         </listitem>
682       </varlistentry>
683       <varlistentry>
684         <term><literal>unsafe_ssl_certs</literal></term>
685         <listitem>
686         <para>
687         Allows Claws to remember multiple SSL certificates for a given 
688         server/port. This is disabled by default.
689         </para>
690         </listitem>
691       </varlistentry>
692       <varlistentry>
693         <term><literal>use_stripes_everywhere</literal></term>
694         <listitem>
695         <para>
696         Enable alternately coloured lines in GtkTreeView components.
697         </para>
698         </listitem>
699       </varlistentry>
700       <varlistentry>
701         <term><literal>use_stripes_in_summaries</literal></term>
702         <listitem>
703         <para>
704         Enable alternately coloured lines in the main window GtkTreeView
705         components, (Folder List and Message List). The only useful way to
706         use this option is to set it to 0 when use_stripes_everywhere is set
707         to 1.
708         </para>
709         </listitem>
710       </varlistentry>
711       <varlistentry>
712         <term><literal>utf8_instead_of_locale_for_broken_mail</literal></term>
713         <listitem>
714           <para>
715         Use UTF-8 encoding for broken mails instead of current locale.
716           </para>
717         </listitem>
718       </varlistentry>
719       <varlistentry>
720         <term><literal>warn_dnd</literal></term>
721         <listitem>
722           <para>
723         Display a confirmation dialogue on drag 'n' drop of folders.
724           </para>
725         </listitem>
726       </varlistentry>
727     </variablelist>
728   </section>
729 </section>
730