1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
|
<chapter id="groupware-with-kontact">
<chapterinfo>
<authorgroup>
<author>
<personname>
<firstname>Marco</firstname>
<surname>Menardi</surname>
</personname>
<email>[email protected]</email>
</author>
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</chapterinfo>
<title>Sharing data with &kontact; via <acronym>IMAP</acronym></title>
<sect1 id="kontact-imap-intro">
<title>Introduction</title>
<para>For my small office, I was looking for a long time for a
<acronym>PIM</acronym> solution that let me share data, so my secretary and
I can share contacts, appointments and so on. Being a &kde; user, I've heard
about the Kroupware project and wait its completion. But when I saw how
complicated is the architecture and setup of the
<application>Kolab</application> server 1.0 (the server side of the
project), I gave up, waiting for an easier to deploy
<application>Kolab</application> 2.0. In any case, the
<application>Kolab</application> stuff was clearly too much for my
needs. Fortunately in the &kde; wiki I've found some piece of
<acronym>IRC</acronym> conversation where they were talking about sharing
data without the <application>Kolab</application> infrastructure... mmm so
interesting!</para>
<para>For small offices and needs, you can have &kontact; use shared data
without the need of installing the <application>Kolab</application> server
or another groupware backend. It can work with just an
<acronym>IMAP</acronym> server, that can be easily set up.</para>
<para>My scenario is a server with Debian unstable and &kde; 3.4. I access
&kontact; and other fabulous GNU/Linux apps from windows using Cygwin/X,
while waiting Wine project to be able to run the last Windows programs I
need (and that are not available under GNU/Linux). I want to share contacts,
events, todo, notes with my secretary.</para>
</sect1>
<sect1 id="kontact-imap-whatis">
<title>What is <acronym>IMAP</acronym></title>
<para>This definition is from the <ulink
url="http://computeruser.com">ComputerUser.com High-Tech Dictionary:</ulink>
<blockquote><para>Internet Message Access Protocol. A protocol that allows a
user to perform certain electronic mail functions on a remote server rather
than on a local computer. Through IMAP the user can create, delete, or
rename mailboxes; get new messages; delete messages; and perform search
functions on mail. A separate protocol is required for sending mail. Also
called Internet Mail Access Protocol.</para></blockquote> </para>
<para>So it can be considered a data storage. To use it you you need an
<acronym>IMAP</acronym> server, such as <application>Cyrus</application>,
<application>Courier</application> or <application>UW</application>.</para>
</sect1>
<sect1 id="kontact-kolab-or-imap">
<title><application>Kolab</application> or <acronym>IMAP</acronym>?</title>
<para><application>Kolab</application> brings the ability to share data
between different clients. It makes possible for your secretary to use
<application>Outlook</application> and you use &kontact;, for
instance.</para>
<para>You will have a configuration interface which does user management, mail
account setup, a central <acronym>LDAP</acronym> config data and addressbook
server, spam and virus filtering, vacation scripts, free busy list handling,
resource handling (rooms, cars), groups, distribution lists, automatic
invitation handling, &etc;</para>
<para>But that can cause initial setup troubles. For a newbie like me it
means: a long long frustrating nightmare, and too much complexity to manage
once working. So no, thanks, I'll go to simple
<acronym>IMAP</acronym>.</para>
</sect1>
<sect1 id="kontact-imap-cyrus">
<title>How to set up <acronym>IMAP</acronym> server <application>Cyrus</application></title>
<para>My choice is <application>Cyrus</application>, that is part of the
<application>Kolab</application> set of software, so if l will go for
<application>Kolab</application> in the future, at least I'm acquainted with
it.</para> <para>Let's start the installation and the setup!</para>
<para>Become <systemitem class="username">root</systemitem>.</para>
<screen># <userinput><command>apt-get</command> <command>install</command> cyrus21-imapd cyrus21-common cyrus21-admin cyrus21-client sasl-bin sasl2-bin</userinput>
<computeroutput>Installing cyrus21-imapd...</computeroutput><lineannotation>The installer asks something I've not understood about an search address... I just pressed <keycap>Enter</keycap></lineannotation>.</screen>
<para>The installer also created the user <systemitem
class="username">cyrus</systemitem> that is in the (automatically created)
group <systemitem class="groupname">sasl</systemitem>, that is the
<quote>owner</quote> of all cyrus files. At the end with <command>ps
<option>-A</option></command> you can find the new processes:
<command>cyrmaster</command> and <command>notifyd</command>.</para>
<para>The real problem in setting up <application>Cyrus</application> is the
authentication, just because it's not trivial and I'm a newbie, with limited
knowledge about what I'm doing.</para>
<para><application>Cyrus</application> can use different
<acronym>SASL</acronym> (Simple Authentication and Security Layer)
mechanisms, the default being sasldb (it stores usernames and passwords in
the SASL secrets file <filename>sasldb</filename>), but also getpwent,
kerberos4, kerberos5, PAM, rimap, shadow and LDAP are supported.</para>
<para> Since I don't want to define users/passwords different than the ones
that access my &Linux; box I choose then <quote>shadow</quote> mechanism so
<application>Cyrus</application> will use &Linux; passwords for
authenticate.</para>
<para>To do so we have to tell sasl to use <command>saslauthd</command> as
password authentication method, and then setup <command>saslauthd</command>
to use <quote>shadow</quote> (or <quote>getpwent</quote>) as the
authentication mechanism.</para>
<para>OK, let's start!</para>
<para>As <systemitem class="username">root</systemitem>, change the Linux
password of <systemitem class="username">cyrus</systemitem> user:</para>
<screen># <userinput><command>passwd <option>cyrus</option></command></userinput></screen>
<para>Enter the password you like (and you will remember) we will use for
this example <quote>cyrus</quote> as the <application>cyrus</application>
administrator password.</para>
<screen># <command>vi</command> <filename>/etc/imapd.conf</filename></screen>
<programlisting>sasl_pwcheck_method: <userinput>saslauthd</userinput> <lineannotation>instead of the default <literal>auxprop</literal></lineannotation></programlisting>
<para>remove the <literal>#</literal> remark from the line:</para>
<programlisting>#admins: cyrus</programlisting>
<para>this way you can administer <application>cyrus</application> logging
in as <systemitem class="username">cyrus</systemitem> user (what a fantasy I
have!)</para>
<screen># <userinput><command>vi</command> <filename>/etc/default/saslauthd</filename></userinput></screen>
<para>Uncomment the line:</para>
<programlisting># START=yes</programlisting>
<para>(otherwise the <application>saslauthd</application> will not start at
boot time, even if referenced in some <filename
class="directory">/etc/rcx.d</filename>!)</para>
<para>and instead of <literal>MECHANISMS="pam"</literal> put
<userinput>MECHANISMS="shadow"</userinput> this way at the boot a
<command>saslauthd</command> <option>-a
<parameter>shadow</parameter></option> will be executed.</para>
<para>Once exited from your editor, restart <application>sasl</application>
and <application>cyrus</application>.</para>
<para>To test <acronym>IMAP</acronym>:</para>
<screen> <userinput><command>su</command> <option>cyrus</option></userinput>
$ <userinput><command>imtest</command> <option>-m login -p imap localhost</option></userinput></screen>
<para>You are prompted for the <systemitem
class="username">cyrus</systemitem> (user) password, so enter it.</para>
<para>If the user <systemitem class="username">cyrus</systemitem> is
correctly authenticated, the following lines will appear:</para>
<screen><computeroutput>S: L01 OK User logged in
Authenticated.</computeroutput></screen>
<para>To exit type <userinput>. logout</userinput> (&ie; dot space <quote>logout</quote>)</para>
<para>Now add a user named <systemitem
class="username">groupware</systemitem> and set a password for it, using
your usual system tools. It should be in an unprivileged group such as
<systemitem class="groupname">nobody</systemitem> and does not require a
login shell or a home directory.</para>
<para>Now I have to create the user and an <acronym>IMAP</acronym> in
<application>cyrus</application> also:</para>
<screen># <userinput><command>cyradm</command> <option>--user cyrus localhost</option></userinput>
after entering the password for the admin user <systemitem class="username">cyrus</systemitem>, you get the prompt <prompt>localhost></prompt>
<prompt>localhost></prompt> <userinput><command>cm</command> <option>user.groupware</option></userinput>
<prompt>localhost></prompt> <userinput><command>lm</command></userinput> <lineannotation>lists the mailbox only just created</lineannotation>
<computeroutput>user.groupware (\HasNoChildren))</computeroutput>
<prompt>localhost></prompt> <userinput><command>quit</command></userinput></screen>
<para>You can type <userinput><command>help</command></userinput> for a list
of available commands.</para>
<para>You can check what has happened with:</para>
<screen># <userinput><command>ls</command> <option>-l</option> <filename class="directory">/var/spool/cyrus/mail/g/user/groupware</filename></userinput>
<computeroutput>total 12
-rw------- 1 cyrus mail 4 Oct 29 20:55 cyrus.cache
-rw------- 1 cyrus mail 155 Oct 29 20:55 cyrus.header
-rw------- 1 cyrus mail 76 Oct 29 20:55 cyrus.index</computeroutput></screen>
<para>Now you should be able to connect with an <acronym>IMAP</acronym> client
as the <systemitem class="username">groupware</systemitem> user and see the
<literal>INBOX</literal>.</para>
<note><para>In the <acronym>IMAP</acronym> protocol, selecting the mailbox
<literal>INBOX</literal> is a magic word, a sort of <quote>alias</quote> for
the above directory structure. The client sees <literal>INBOX</literal>, and
the <acronym>IMAP</acronym> server maps it in the <filename
class="directory">/var/spool/cyrus/mail/...</filename> folder and file
structure.</para></note>
</sect1>
<sect1 id="kontact-imap-clients">
<title>How to setup &kontact; clients</title>
<para>I connect to my GNU/Linux office server PC (a sort of "black box"
without monitor and keyboard) from 2 &Windows; 2000 PC with
<application>Cygwin/X</application>, using them as a X-Window server (in the
near future I hope to replace both with 2 mini-itx thin clients using the
LTSP). With this setup every user runs &kontact; on the same machine where
<application>Cyrus</application> is installed and running
(localhost).</para>
<para>To have &kontact; work with <acronym>IMAP</acronym>, there are these
steps to complete:</para>
<procedure>
<step><para>Create an <acronym>IMAP</acronym> account on the
<application>Cyrus</application> for fake <systemitem
class="username">groupware</systemitem> user (already previously
done!)</para></step>
<step><para>Create/configure an <acronym>IMAP</acronym> account in &kmail;
for login as that user</para></step> <step><para>Use kresources to make
&kontact; components work with data taken from <acronym>IMAP</acronym>
source</para></step>
<step><para>Enable groupware functionality and make related subfolders of
that <acronym>IMAP</acronym> <literal>INBOX</literal> (if not
already)</para></step>
<step><para>Enjoy &kontact; and shared data through
<application>Cyrus</application> IMAP</para></step>
</procedure>
<para>So login to &kde; with the first <quote>real user</quote> account you
want to provide groupware functionality to.</para>
<para>Let's create the IMAP account in &kmail;.</para>
<para>Run &kontact; and select <guilabel>Mail</guilabel> (the &kmail;
component). From the menu choose
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure KMail
</guimenuitem><guilabel>Accounts</guilabel><guilabel>Receiving</guilabel></menuchoice> tab, press the <guibutton>Add...</guibutton> button. You will then be
prompted for the type of your email account, and select
<guilabel>disconnected IMAP</guilabel> (not just
<guilabel>IMAP</guilabel>). Then in the <guilabel>General</guilabel> tab
enter the following data:</para>
<variablelist>
<varlistentry>
<term><guilabel>Account Name:</guilabel> <userinput>office_gwdata</userinput></term>
<listitem>
<para>A name that will be used for the <quote>local</quote> folder that
points to this <acronym>IMAP</acronym> account.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Login:</guilabel> <userinput>groupware</userinput></term>
<listitem>
<para>The <application>Cyrus</application> user we have chosen as
<quote>owner</quote> of all of the office data</para>
</listitem>
</varlistentry>
<varlistentry><term><guilabel>Password:</guilabel></term>
<listitem>
<para>The password of the <systemitem
class="username">groupware</systemitem> user.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Host:</guilabel> <userinput>localhost</userinput></term>
<listitem>
<para>Remember for our example, the &kontact; client runs on the same
computer as the <acronym>IMAP</acronym> server</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Port:</guilabel> <userinput>143</userinput></term>
<listitem>
<para>The default</para>
</listitem>
</varlistentry>
</variablelist>
<para>Check <guilabel>store IMAP password</guilabel>
so you will not be asked for it next time you run &kontact;. Check the
<guilabel>Enable interval mail checking</guilabel> and set a value in
minutes.</para>
<para>Note that we have checked the <guilabel>disconnected IMAP</guilabel>
type account. This has the effect that a copy of the groupware data is
stored <quote>locally</quote> to the client (under the home folder), and it
is synchronized every time the client connects. This seems very inefficient,
since your data is duplicated many times (&ie; if you have 10 users that use
&kontact;, you have 10+1 times the data), but it is the only way to make
things run fast, because at every connection &kontact; has to fetch all data
and have &korganizer; and &kaddressbook; interpret it. If you use
<quote>disconnected IMAP</quote> data is cached locally, and only the
<quote>delta</quote> (&ie; the data that has changed) is sent.</para>
<para>On the other end, if your users run &korganizer; on the same PC that
runs the <acronym>IMAP</acronym> server, it seems reasonable to use
<acronym>IMAP</acronym> (that is called <quote>online IMAP</quote>) to save
space, since transfer speed should not be an issue. But unfortunately this
does not work because &kontact; does not update automatically the
<guilabel>Calendar</guilabel> folder in <quote>online IMAP</quote>, so you
are not updated when someone adds events (you must manually switch to
&kmail; application and click on the <guilabel>Calendar</guilabel>
folder). In addition, at start up when it does read
<guilabel>Calendar</guilabel> folders, you may see a tremendous flicker and
slow data updates.</para>
<para>Now we have to tell &kontact; to use <acronym>IMAP</acronym> as the
data source for it's various components. From the &kmenu;, choose
<guimenuitem>Run command</guimenuitem>, run <userinput><command>kcmshell
kresources</command></userinput>. In the combo box select
<guilabel>Contacts</guilabel>, then press the <guibutton>Add...</guibutton>
button, and choose <guilabel>Addressbook on IMAP Server via KMail</guilabel>. Then select that new line and
press <guibutton>Use as Standard</guibutton> button. Do the same for
<guilabel>Calendar</guilabel> and <guilabel>Notes</guilabel>.</para>
<para>Now we have to enable the &kmail; (and as a consequence, the whole
&kontact;) groupware functionality:</para>
<procedure>
<step>
<para>Choose from the menu
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
KMail</guimenuitem><guilabel>Misc</guilabel><guilabel>Groupware</guilabel></menuchoice></para>
</step>
<step>
<para>Check <guilabel>Enable IMAP resource functionality</guilabel></para>
</step>
<step>
<para>Choose <guilabel>English</guilabel> as <guilabel>Language of the
groupware folders</guilabel> (this is in case you already have the folders
in the <acronym>IMAP</acronym> server created by a different program in a
different language).</para>
</step>
<step>
<para>Now move to <guilabel>Resource folder are in account</guilabel> and
select the the <guilabel>Inbox</guilabel> subfolder of the
<guilabel>office_gwdata</guilabel> folder.</para>
<para>Leave <guilabel>Hide groupware folders</guilabel> unchecked for now,
so we can see that happens. You can return here and check it once everything
is clear.</para>
</step>
<step>
<para>When you press OK you are prompted with:
<computeroutput>&kmail; will now create the required folders for the IMAP
resource as subfolders of Inbox</computeroutput> </para>
<para>If you do not want this, press <guibutton>No</guibutton>, and the
<acronym>IMAP</acronym> resource will be disabled. Press
<guibutton>Yes</guibutton> (this happens only the first time with the first
<quote>real user</quote>). You will immediately see that in the &kmail;
folder tree, under
<menuchoice><guilabel>office_gwdata</guilabel><guilabel>Inbox</guilabel></menuchoice>
these subfolders are created:</para>
<simplelist>
<member>Calendar</member>
<member>Contacts</member>
<member>Notes</member>
<member>Tasks</member>
<member>Journal</member>
</simplelist>
<para>if you now do a:</para>
<screen># <command>ls</command> <option>-l /var/spool/cyrus/mail/g/user/groupware/</option>
<computeroutput>drwx------ 2 cyrus mail 144 Oct 31 16:36 Calendar
drwx------ 2 cyrus mail 144 Oct 31 16:36 Contacts
drwx------ 2 cyrus mail 144 Oct 31 16:36 Journal
drwx------ 2 cyrus mail 144 Oct 31 16:36 Notes
drwx------ 2 cyrus mail 144 Oct 31 16:36 Tasks
-rw------- 1 cyrus mail 4 Oct 31 15:28 cyrus.cache
-rw------- 1 cyrus mail 155 Oct 29 20:55 cyrus.header
-rw------- 1 cyrus mail 76 Oct 31 15:28 cyrus.index</computeroutput></screen>
<para>As you see, the <guilabel>office_gwdata Inbox</guilabel> is stored not
local to the &kontact; current user home, but in the <acronym>IMAP</acronym>
<systemitem class="username">groupware</systemitem> user's folders.</para>
</step>
</procedure>
<para>Now &kontact; is ready to work and store data there. In the calendar
application, if &kmail; <acronym>IMAP</acronym> account was of type
<quote>disconnected</quote>, the <guilabel>resource</guilabel> window should
display the item <guilabel>Imap resource</guilabel> with 3 subitems, that
are paths to local home files. Instead, the <guilabel>Contacts</guilabel>
application does not show subitems below the <guilabel>Imap
resource</guilabel>.</para>
<para>You can now login to &kde; with a different username and set up
his/her &kontact; client in a very similar manner:</para>
<procedure>
<step>
<para>Open &kontact; and in the <guilabel>Mail</guilabel> component add an
<acronym>IMAP</acronym> account specifying as <guilabel>host</guilabel> the
computer where <application>Cyrus</application> server runs (in my case:
<literal>192.168.1.3</literal>).</para>
<para>Remember to check the <guilabel>Enable interval mail
checking</guilabel> and set a value in minutes. When you confirm, you are
not prompted for the subfolder creation (since they are found in the
<acronym>IMAP</acronym> server), and you see them in the folder tree.</para>
</step>
<step>
<para>Activate the groupware functionality to be able to save data in the
<acronym>IMAP</acronym> server.</para>
</step>
</procedure>
<para>Beware that in <quote>disconnected <acronym>IMAP</acronym></quote>,
data are transmitted from a client to <acronym>IMAP</acronym> server only
when the clients connects to check for new mail. So if you have your
&kontact; clients with an <guilabel>interval mail checking</guilabel> of,
for instance, 5 minutes, in the worst case you have a 10 minutes delay
between the event being written and it's appearance to the other
users.</para>
</sect1>
<sect1 id="kontact-imap-readonly">
<title>How to have Read Only Access</title>
<note><para>Beware that I've been confirmed that Notes
<acronym>IMAP</acronym> implementation in &kontact; prior to version 1.01 is
broken, so this setup will not work for them, so you want to use them, you
need to use the previous setup.</para></note>
<para>In the previous setup, we have the same <quote>fake</quote> user, named
<systemitem class="username">groupware</systemitem>, that is used by all the
<quote>real</quote> &kontact; users (&ie; <systemitem
class="username">tony</systemitem>, <systemitem
class="username">rohn</systemitem>, <systemitem
class="username">amanda</systemitem>, &etc;) through the
<acronym>IMAP</acronym> account with it's login and password. But this way
every real user has the same read/write permissions of the others, since
everyone connects as the user <systemitem
class="username">groupware</systemitem> to the <acronym>IMAP</acronym>
server.</para>
<para>To limit access to some users (typically, providing read-only access),
we can use the <acronym>ACL</acronym> (Access Control Lists).</para>
<para>Select in &kmail; a subfolder of <guilabel>office_gwdata</guilabel>
inbox, for instance <guilabel>Calendar</guilabel>, and right click the
mouse. Select <guilabel>Properties</guilabel><guilabel>Access
Control</guilabel> tab. Here you can enter the users you want give access to
this folder and what they can do.</para>
<para>Just to experiment trying to exchange events, we give
<quote>All</quote> permission to the user <systemitem
class="username">mary</systemitem></para>
<para>At <application>cyrus</application> level (in the
<acronym>PC</acronym> that runs <acronym>IMAP</acronym> server cyrus, with
<application>cyrus</application> tools), we first need to add the user
<systemitem class="username">mary</systemitem>, so it's an
<acronym>IMAP</acronym> recognized user, and create an
<acronym>IMAP</acronym> folder for her.</para>
<para>Then we login to GNU/Linux as <systemitem
class="username">mary</systemitem> and enter &kontact;. As previously shown,
we will setup an <acronym>IMAP</acronym> account in &kmail; with the same
data but the one of the user (instead of the fake user <systemitem
class="username">groupware</systemitem> and it's password, we will use
<systemitem class="username">mary</systemitem> and her password).</para>
<para>In &kmail; folder tree, this time you will see this structure:
<menuchoice><guimenu>office_gwdata</guimenu><guisubmenu>user</guisubmenu>
<guisubmenu>groupware</guisubmenu><guimenuitem>Calendar and
Tasks</guimenuitem></menuchoice>. Check the mail
(<menuchoice><guimenu>File</guimenu><guimenuitem>Check
Mail</guimenuitem></menuchoice>) and you will also have an
<quote>inbox</quote> folder under <quote>office_gwdata</quote>.</para>
<para>Now enable &kmail; groupware functionality, and in <guilabel>Resource
folders are subfolders of</guilabel> put the
<guimenuitem>inbox</guimenuitem> that is subfolder of
<quote>office_gwdata</quote>.</para>
<para>Now enable &kmail; groupware functionality, and in <guilabel>Resource
folders are subfolders of</guilabel> put the
<guimenuitem>inbox</guimenuitem> that is subfolder of
<guisubmenu>office_gwdata</guisubmenu>.</para>
<para>Now you have two branches of folder under
<quote>office_gwdata</quote>:</para>
<orderedlist>
<listitem>
<para><quote>inbox</quote> with Calendar, Contacts, Notes, Tasks and
Journal, that are saved on <systemitem class="username">mary</systemitem>
<acronym>IMAP</acronym> folders on the <acronym>IMAP</acronym> server</para>
</listitem>
<listitem>
<para><quote>user</quote>, with the subfolder <quote>groupware</quote> and
the subfolders to which <systemitem class="username">mary</systemitem> has
access to (in this example, Calendar and Tasks)</para>
</listitem>
</orderedlist>
<para>&RMB; click on the <quote>user</quote> <quote>Calendar</quote> and
check if it's of type Calendar (if not, set it to be), and also if
<quote>user</quote><quote>Tasks</quote> is of type Tasks.</para>
<para>Now in Calendar you have two available <acronym>IMAP</acronym>
resources to write against, so if you create a new event, you are prompted
which one use (or if you left the local resources available, you have
3!).</para>
<para>You have go to the lower left small window in Calendar, the one that
shows available resources, and uncheck the ones that don't point to
<guilabel>.groupware.directory</guilabel> path (see the tail part of each
resource path).</para>
</sect1>
<sect1 id="kontact-imap-credits">
<title>Credits</title>
<para>I'm a newbie, and for this howto I've only provided my time and my
will. For the knowledge I have really to thank some guys in freenode
channels for their competence, patience and helpfulness.</para>
<itemizedlist>
<title>Special thanks to:</title>
<listitem>
<para>For the <application>Cyrus</application> <acronym>IMAP</acronym> part
in #cyrus channel:</para>
<itemizedlist>
<listitem>
<para>[protagonist] Andy Morgan <email>[email protected]</email></para>
</listitem>
<listitem>
<para>[plixed] Okke Timm <email>[email protected]</email></para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>For the &kontact; part in #kontact channel:</para>
<itemizedlist>
<listitem>
<para>[till] Till Adam <email>[email protected]</email></para>
</listitem>
<listitem>
<para>[dfaure] David Faure <email>[email protected]</email></para>
</listitem>
<listitem>
<para>[mdouhan] Matt Douhan <email>[email protected]</email></para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<para>Thank a lot guys!</para>
<para>Ah, and there is also me, [markit] Marco Menardi
<email>[email protected]</email></para>
</sect1>
<sect1 id="kontact-imap-further-reading">
<title>Further Reading</title>
<itemizedlist>
<title>Reference</title>
<listitem><para>KDE: <ulink url="http://www.kde.org">http://www.kde.org</ulink></para></listitem>
<listitem><para>&kontact; website: <ulink url="http://www.kontact.org">http://www.kontact.org</ulink></para></listitem>
<listitem><para>Kroupware project: <ulink url="http://www.kroupware.org">http://www.kroupware.org</ulink></para></listitem>
<listitem><para>&kde; Community Wiki: <ulink url="http://wiki.kde.org">http://wiki.kde.org</ulink></para></listitem>
<listitem><para>Wine project: <ulink url="http://www.winehq.org">http://www.winehq.org</ulink></para></listitem>
<listitem><para>Cygwin/X project <ulink url="http://x.cygwin.com">http://x.cygwin.com</ulink></para></listitem>
<listitem><para>LTSP project: <ulink url="http://www.ltsp.org">http://www.ltsp.org</ulink></para></listitem>
</itemizedlist>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:true
sgml-parent-document:("index.docbook" "book" "chapter")
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
|