# Kontact

Kontact is a personal information manager and groupware software suite developed by KDE. It supports calendars, contacts, notes, to-do lists, news, and email. It offers a number of inter-changeable graphical UIs (KMail, KAddressBook, Akregator, etc.) all built on top of a common core.

## Differences between "Kontact" and "KDE PIM"

Technically speaking, Kontact only refers to a small umbrella application that unifies different stand-alone applications under one user interface. KDE PIM refers to a work group within the larger KDE project that develops the individual applications in a coordinated way.
In popular terms, however, Kontact often refers to the whole set of KDE PIM applications. These days many popular Linux distributions such as Kubuntu hide the individual applications and only place Kontact prominently.

## History

KDE PIM New Year Meeting :
| Year | Date |
| 2003 | 1/3-1/5 |
| 2004 | 1/2-1/5 |
| 2005 | 1/6-1/9 |
| 2006 | 1/6-1/8 |
| 2007 | 1/12-1/15 |
| 2008 | 2/1-2/3 |
| 2009 | 1/09-1/11 |
| 2010 | 1/8-1/10 |
| 2011 | 2/25-2/27 |
The initial groupware container application was written in an afternoon by Matthias Hölzer-Klüpfel and later imported into the KDE source repository and maintained by Daniel Molkentin. This container application is essential for Kontact to operate, but without embedded components it is not useful by itself.
The first embedded components were created by Cornelius Schumacher. He modified the KAddressBook and KOrganizer applications to create the initial address book and organizer components. At this stage no mail client component existed, so KDE still lacked a functional integrated groupware application. However, Cornelius' groundbreaking work acted as a prototype for other developers to base their efforts on.
Don Sanders created the missing mail client component by modifying the KMail application. He then integrated the mail client component with the other components, and the groupware container application, assembled and released the initial Kontact packages, and created the initial Kontact website.
Daniel Molkentin, Cornelius Schumacher and Don Sanders then formed the core Kontact team. The KMail and container application changes were imported into the KDE source repository, and Kontact was released as part of KDE 3.2.
During the construction of the Kontact application suite, the Kolab groupware server was being worked on by Erfrakon, Intevation.net and Klarälvdalens Datakonsult simultaneously and was completed at approximately the same time. This work was done as part of the Kroupware project that also involved modifying the KMail and KOrganizer applications to enhance them with additional groupware features.
The core Kontact team, the Kolab consortium, and several independent KDE PIM developers then worked together to enhance Kontact by integrating the Kroupware functionality and making Kolab the primary Kontact server.
Additionally, a news component was created from the KNode application by KDE developer Zack Rusin, and Kontact was modified to support an array of mainly web based suites of collaboration software.

## Components

Kontact embeds the following
* Summary Page: A summary which shows unread emails, upcoming appointments, and the latest news and weather from the user's subscribed RSS feeds

### Email

KMail supports folders, filtering, viewing HTML mail, and international character sets. It can handle IMAP, IMAP IDLE, dIMAP, POP3, and local mailboxes for incoming mail. It can send mail via SMTP or sendmail protocols. It can forward HTML mail as an attachment but it cannot forward mail inline.

#### Spam and filtering

KMail uses two special filters to provide a modular access to spam-filtering programs:
* Send this e-mail to a program allows any program to be specified, and when that KMail filter is activated, the program will be run and supplied with the contents of the e-mail as its standard input.
* Pipe this e-mail through a program not only sends the e-mail to a specified program, but replaces the e-mail with the output of that program. This allows the use of systems such as SpamAssassin which can add their own headers to a piece of e-mail.
These modular filters can be combined with text filters to detect (for example) e-mail which has been flagged by SpamAssassin by looking for the special headers it added.
KMail allows manual filtering of spam directly on the mail server, a very interesting feature for dial-up users. Emails that exceed some threshold size (standard is 50 kb, but it may be set to any value) are not automatically copied to the local computer. With "get, decide later, delete" options, KMail lists them but does not download the whole message, which allows the deletion of spam and oversized messages without wasting time.

#### Cryptographic support

KMail supports the OpenPGP standard and can automatically encrypt, decrypt, sign, and verify signatures of email messages and its attachments via either the inline or OpenPGP/MIME method of signing/encryption. KMail depends on the GnuPG software for this functionality. As a visual aid, KMail will colour verified email messages green for trusted signatures; yellow for untrusted signatures; red for invalid signatures; and blue for encrypted messages.
KMail also supports S/MIME messages as well as Chiasmus, a proprietary cryptographic system created by the German Federal Office for Information Security (BSI).

### Address book

KAddressBook is an address book application.

#### Description

KAddressBook is a graphical interface to organizing the addresses and contact information of family, friends, business partners, etc. It integrates with KDE Plasma, allowing interoperability with other KDE programs, including the e-mail client KMail – allowing one-click access to composing an e-mail – and the instant messenger Kopete – showing the online status of and easy access to instant messaging contacts. It can be synchronized with other software or device using Kitchensync and OpenSync.
A contact may be classified into customizable categories, such as Family, Business, or Customer. Many of the fields can have multiple entries, for example, if the contact has several e-mail addresses. A contact's fields are separated into four tabs and one tab for custom fields.

#### Features

* Exports and imports cards to and from vCard format.
* Uses DBUS to interface with other applications.
* Interoperable with KMail and Kopete, as well as Kontact.
* Customize fields and categories.
* Automatic formatting of names.
* Filter ability, to search for addresses.
* Capability to query an LDAP database containing person information.

### Organizer

KOrganizer is the personal organizer. It has the ability to manage calendars, journals, and a to do list.

### News feed aggregator

Akregator is a feed aggregator that supports both the RSS and Atom specifications. It allows individual feeds to be combined by assignment into user-configured categories, and will aggregate all feeds in a category into a single list of new entries. It also provides an incremental search feature for the titles of all the entries in its database.
Akregator can be configured to fetch feeds within regular intervals. The user can also manually request to fetch all feeds, individual ones, or those in a selected category. It supports feed icons and embeds KHTML as an internal, tabbed web browser. Any external browser can also be called.
Akregator has been part of the KDE Applications suite since the 3.4 release, and it is distributed with the kdepim module.

### Usenet news client

KNode is the news client program for the KDE desktop environment.
It supports multiple NNTP servers, message threads, scoring, X-Face headers (reading and posting), and international character sets.

### Personal wiki

KJots is a simple outliner text editor which can be used to create a personal wiki. It uses a basic tree structure to organize information: it refers to nodes as ‘books’ and leaves as ‘pages’. It includes a book view, which shows a table of contents, and a view mode for all entries.
Similar wiki-style programs are Zim (based on GTK and Python), Wixi (based on Python and GTK), KeepNote (based on Python and GTK), Notecase (based on GTK), BasKet (based on Qt), Gnudiary (also based on Qt), Tomboy (GTK, based on Mono), Gnote (Tomboy port to C++) and Tiddlywiki (self-modifying, single-HTML contained personal wiki, written in JavaScript and expandable with plugins). Also Treeline, an advanced outliner written in Python and personal database available for Linux and Microsoft Windows, has similar functions.

### Other components

* Notes: KNotes – KDE Notes Management
* Weather: KWeather

### Storage back-end

Along with the KDE Software Compilation 4 life cycle, Kontact moved to Akonadi for storing its data, when in the past every Kontact component implemented the storage technologies itself. Akonadi is currently mostly developed by the KDE PIM team, but its design is done in an agnostic way and thus not depending on KDE technologies.
The first SC 4 release of Kontact was officially shipped with KDE 4.1. That release did not use Akonadi. Since then the Kontact components have been gradually migrating towards Akonadi. The first stable version of KDE PIM using Akonadi was released together with KDE 4.6.4 in June 2011.