KMail/FAQs Hints and Tips
Is my problem already known?
Symptom: You have a problem with KDE-PIM and would like to know whether others have reported and solved the problem. You wonder how to read the archives of the kde-pim mailing list.
Solution: This is a good habit to cultivate. Try the MARC archives at http://lists.kde.org/?l=kdepim-users&r=1&w=2
Configuration
Store sent mails in a special folder
You want to store mails in a special folder. Maybe you are using an IMAP server and want to store your mails on the server, not in the client.
Solution: In Kontact, choose
Store trash mails in a special folder
You want to store mails in a special folder. Maybe you are using an IMAP server and want Trashed mails to be stored on the server, not in the client.
Solution: In kontact, choose
Store encrypted mails as unencrypted
Symptom: You exchange encrypted mail with a friend, but would like to store it unencrypted, once you have opened the message.
Solution: To store emails that have been decrypted once in unencrypted format henceforth, add this to your kmailrc configuration file, in the [Reader] section:
store-displayed-messages-unencrypted=true
This may only work with SMIME but implementation for OpenPgP is being worked on.
Spam filtering on an IMAP server
Symptom: You intend moving on to reading your mail from an IMAP server, and wonder how filtering and spam handling will occur?
Solution The machine that already has your mail can become your imap server. You will need to configure a server application. Dovecot is one such, and the guidance on the project web pages make it easy to set up. That still leaves you with the problem of filtering, as it makes sense to do it on the server (when you point kmail at the server you will see the folders that you have created on the server). Again there are options, but one of the best known is procmail. Again there is plenty of information on the Internet on how to set this up. You give it a set of "recipes" - here's an example:
:0 * (^To|^CC|^List-ID): .*kde-linux ${MAILDIR}.INBOX.KDE-Lists.kde-users/
If you have maildir folders, each recipe must end with a "/". If your folders are mbox, just omit the "/"
If you have been using bogofilter' with kmail you will already have a wordlist. This can be used at server level, too, so you won't have to start training from scratch. The trick is to set this before the procmail recipes:
:0fw | bogofilter -e -p :0e { EXITCODE=75 HOST } :0: * ^X-Bogosity: Spam, tests=bogofilter ${MAILDIR}.INBOX.a-Spam/ :0e { EXITCODE=75 HOST } :0: * ^X-Bogosity: Unsure, tests=bogofilter ${MAILDIR}.INBOX.a-Unsure/ :0e { EXITCODE=75 HOST }
Note that it is going to use a mailbox for spam and one for unsure - I add a 'a-' to the name to ensure that they are easily seen, at the top of the list.
Finally, to improve performance, run the following command occasionally on saved spam and Unsures:
/usr/share/bogofilter/contrib/trainbogo.sh -c -H /home/user/Maildir /.INBOX.bogotrain_ham/cur/ -S /home/user/Maildir/.INBOX.bogotrain_spam/cur/
(don't forget to check the path.)
This is not a complete guide to setting up a server, but notes on how to set up the server to work as you expect in KMail.
Get more screen space in KMail
Symptom: You are using KMail under KDE 4.2 or later on a netbook, and find that the new Aggregation display leaves you little screen space
Solution: In 4.2 you have a new set of icons next to the quick search bar. You can use these to choose a different theme and a different aggregation. If you want to change the look so that a mail uses a single row instead of two rows, go to - the tooltip says - and change the theme to . If you want to disable grouping by date, change the aggregation to . Now your KMail will look exactly like it did in earlier versions.
In 4.4 and 4.5 these settings were moved to the main menu,
andGet more screen space in KMail - reduce font size
Symptom: You still lack screen space, and would prefer more visible lines at the expense of font size, but your attempts only partially work.
Solution: In
you can select and change the setting for each component in the list. This is when you discover that your folder list and the message bodies do use the fonts you want, but the message list still has too large a font.Now you have to look at that set of new icons at the top right, close to the search box, for - the tooltip says . Choose , then tab. There is a list of , and below that a mockup of column headers. Each one of those column headers needs to be clicked on, and your new Custom font set. At the end of this the message list will display in the same font as the rest of your layout.
In later versions that don't have those icons you can make the changes by right-clicking on the Message List headers, and selecting
Again, you need to work with the header of each column.
Un-configure KMail folder tool tips
Symptom: You are using KMail under KDE 4.2 or later on a netbook, and find that the tooltips over folders hide too many folder names
Solution: Right-clicking on the header of the
now brings up several more configuration options. One section is headed , and the choices are , , . is handy for folders that have long names, so that only part of the name is displayed. Folders where you can see the full name won't pop up the tooltip.Un-configure KMail message list tool tips
In KMail,
uncheckRemove Alternate Line colourings
In
, for each color set except (which doesn't have it), change the to be the same as the .Mandriva doesn't use the name System Settings. As in KControl, the KDE 3 control centre, they name it "Configure your Desktop" to distinguish it from "Configure your Computer", a.k.a. the Mandriva Control Center (MCC). Other than this name change, the method is as described above.
Migration
Transfer mail and settings to another computer (or another user account on the same machine)
Solution: The messages are typically in ~/.kde/share/apps/kmail/. For very old installations of KMail, the messages can also be in ~/Mail. Note that KMail uses hidden sub-directories inside that directory, so you need to make sure to copy hidden directories as well.
For settings you will need to copy the following files:
- ~/.kde/share/config/kmailrc,
- ~/.kde/share/config/mailtransports, (since KDE 4.0)
- ~/.kde/share/config/emaildefaults and
- ~/.kde/share/config/emailidentities .
Your address book is usually stored in ~/.kde/share/apps/kabc/. Calendar data is in ~/.kde/share/apps/korganizer
Be aware that some distributions use ~/.kde4 instead of ~/.kde/ for their KDE configuration data.
From version 4.4 you may have some Akonadi-controlled entries that also need to be kept. Add to the above list -
- Everthing under ~/.local/share/
- Everything under ~/.config/akonadi/.
- ~/.kde/share/config/nepomukserverrc
- Everything under ~/.kde/share/apps/nepomuk/ (KAddressBook stores contact groups in Nepomuk.)
If you plan to use an USB stick as transport medium for your data, be sure to read section "Cannot copy mail to a USB stick" below.
Problem: Cannot copy mail to a USB stick
Symptom: You are setting up a new computer and want to transfer all your mail. You decide to copy everything to a usb stick. The job starts, then you start to get failure message,
Unable to copy ............Invalid argument
Solution: Your usb stick is (V)FAT formatted, and thus can't handle maildir folder names (nor can it handle permissions, which can cause many other problems). You have two choices. Either format your usb stick as ext2 (in which case you should be aware it can't be read on Windows OSes without installing additional software there) or create a tar file of all your mail, copy that to the stick and extract it to your new host.
Troubleshooting
Problem: You are losing mail
Symptom (1): You are losing mail. One message in your Inbox had an empty subject line and the date 1st January 1970. When you clicked on it, it was empty. When you clicked on the next message that changes to the same state.
Solution to (1): This happens where there is corruption in your index files. First thing then, do notclick on any more messages.
- With the KMail 1.10 shipped with KDE 4.1 or newer, right click on the folder and select (you can do the same from the menu).
- With earlier KMail versions the process is slightly more complicated. Close KMail. In Dolphin, navigate to where your mail is stored (typically in ~/.kde/share/apps/kmail/) and look for index files associated with the affected mailbox. There will be two or three, and be easy to spot. them. They will be recreated when you re-start KMail. You will have lost the mails that had disappeared, but the rest of the mail should be visible again.
You have empty 'ghost-mails' in your inbox (or other folder)
Symptom: For some reason, certain messages aren't accessible in KMail. They show up in the message list window but selecting them there results in a blank message window. I can't open them or reply to them, etc.
Solution: This problem is most likely due to corrupted index files, see issue "You are losing mail" above. So just follow the advice given there.
Problem: Wrong address autocompletion
Problem: You sent an email to a friend and mis-typed his address. Now that address keeps popping up as a suggestion, every time you try to send to the correct address. You can't find it in your addressbook.
Solution: Recent addresses are actually stored in /.kde/share/config/kmailrc, but rather than risk making a mistake in a manual edit, go to KMail's
and you will see a buttonProblem: Cannot follow a link in a mail
Symptom: You have set Firefox as your default browser, but when you click a URL in KMail it loads a local temporary version of the page with broken relative links.
Solution: You should add "%u" or "%U" to the Firefox executable in the settings. If that is not present KDE assumes that the application is not capable of handling remote urls (http) and hence creates a local copy first.
Problem: You get an authentication error message
Authentication support is not compiled into kio_smtp. The message will stay in the 'outbox' folder until you either fix the problem (e.g. a broken address) or remove the message from the 'outbox' folder.
Solution: Install the sasl-devel-package and recompile kdepimlibs. E.g. for SUSE the package is named cyrus-sasl-devel and you install it with the command
yast -i cyrus-sasl-devel
When running cmake to compile kdepimlibs, you will see:
-- The following external packages were located on your system. -- This installation will have the extra features provided by these packages. [...] + cyrus-sasl
This usually only affects self-build distros.
Problem: You can't find your Distribution Lists
Solution: See KAddressBook
Your correspondents complain about your bottom-posting
Symptom: Your correspondents use mail agents that routinely top-post, and they complain that they have to scroll down to read your replies. You, on the other hand, post to mailing lists, where it is a requirement that you bottom post to maintain the natural order of reading.
Solution: Highlight the portion of your received message to which you want to reply, before hitting the
icon or keyboard shortcut. The composer window that opens will quote only the section that you highlighted and your correspondents will be able to see your reply without unnecessary scrolling.
Error: Could Not Determine Resource Status
Symptom: When fetching mail, you get an error message reading like:
Error while getting folder information. Could Not Determine Resource Status An attempt to determine information about the status of the resource Unable to get information about folder INBOX.customflags. The server replied: Mailbox does not exist, or must be subscribed to., such as the resource name, type, size, etc., was unsuccessful. Technical reason: Could Not Stat Resource
Reason: You are using Courier IMAP as your mail server.
Solution: If you are your own mail server administrator, set up a different mail service, for example cyrus. Here is a description how to do it.
Problem: Kmail is slow
Symptom: Kmail is really slow to get your mails.
Solution: It might be that the spam tool you're using is slowing down Kmail. If you used Kmail tools menu to add a spam tool and added Spam Assassin (for example) then try another one. I noticed that bogofilter is much quicker. You'll need to remove the 1st one and add the 2nd. You'll then need to train the spam tool you just added (bogofilter): KMail Anti-Spam Tools
Symptom: You just copied your mail folders from an earlier version (see "Migration" above) and now Kmail is really slow to respond shortly after it starts up, for at least several seconds with Kontact burning 100% cpu.
Solution: Work through all your saved message folders and
, from either the menu or right-click on the folder in the tree view side panel.Symptom: You experience very long delays when sending messages, and KMail is frozen while you wait.
Solution: There was a bug in the various Release Candidates for KDE SC 4.4 which caused KMail to do lengthy searches for matching addresses. Updating to the full 4.4 should cure the problem.
KMail with other desktops or applications
Problem: KMail does not start up.
Symptom: You want to start KMail from a minimal desktop environment like fvwm2. It does not start.
Reason: You are missing the dbus functionality.
Solution: Start KMail using dbus-launch like this:
dbus-launch kmail
Tell Firefox to use KMail for mailto: addresses
Solution:
Firefox 2 - In the Firefox address bar, type
about:config
Right-click anywhere in the window and select
in the first dialogue field. Typenetwork.protocol-handler.app.mailto
and then
kmailservice
Close Firefox
Firefox 3 - In the Firefox menu, select
, choose the tab, then typemailto
in the search box. Choose
and find /usr/bin/kmailserviceSet Firefox as your default browser
Symptom: You want to click on a link in KMail and have it opened in Firefox. At the moment, another browser is used. You want to change this.
Solution: This solution will affect all of KDE, not just KMail. Start
.If you are an administrator and want to set this setting automatically for your users, it is
- for SUSE Linux
in your user directory in .kde4/share/config/kdeglobals add the line
BrowserApplication[$e]=!firefox
under category
- for all other Linux distributions:
in your user directory in .kde/share/config/kdeglobals add the line
BrowserApplication[$e]=!firefox
under category
If General category does't exist you should add it.You can also use the script in [{Tutorials/Modify_KDE_defaults|Tutorials/Modify_KDE_defaults]]
Control your Roaming profile's connection
Symptom: You set up a Roaming profile to access your home server while you are on the road, but it keeps trying to connect even when you are at home. Auto-connection is disabled in the setup screens.
Solution:
, uncheck . This will exclude the profile when you hit the download icon, but the profile will still be available from the drop-down list, making it easy to get your mail while away from home.Hints and Tips
Add a Tag to aid searching
You must first define your tags, which is done in
. Now you will find that the (right-click) context menu, under , offers you the choice of your defined tags.Watch threads
If you want to follow a thread, right click and choose
.From this point on all messages on the thread that starts in this message will be marked as Watched.
Watch your own threads:
This is useful in case you are registered to a mailing list such as kdepim-users@kde.org and want to filter out the threads you participate in.
Create a filter to mark all your incoming messages to a mailing list as "Watched"
To create a filter go to:
- select
- Add the conditions:
- yourmail@maildomain [1]
- listID [2]
[1]replace yourmail@maildomain with your outgoing mail address
[2]replace listID with a specific mailing list id e.g (<kdepim-users.kde.org>) or just a '.' to include outgoing mail to all mailing list with '.' in their id (basically all).
- Under choose .
In the
tab- Uncheck .
so that other filters such as sorting the incoming messages from the mailing list to sub-folders would execute.
- Place that filter before other filters that may stop the filtering process,
or simply put it first. (changing the filters order is done using the two arrows up and down, under the
)Create a search on mailing list messages
Go to the folder where your mailing list messages are stored e.g (Local Folders/KDE-PIM-USERS) and hit S key or in the menu .
- Select [3]
- Add the condition:
- Give the search an informative name (Search folder name) like KDE-PIM-USERS-Watched
- Make the search. After it is done you can close the search window.
Now whenever you start a thread or participate in one, it is Watched.
[3] Pay attention to the
.E-Mail Translation
Symptom: you receive mail messages in different languages and want to translate them without doing lots of copy and paste.
Solution: using an external program to translate our E-Mail and display it.
Step by step implementation
- Prerequisites, make sure you have those before starting
- libtranslate
- perl
- perl module Email::MIME
- kmail
- Setting up a pipe filter
- In Kmail go to
- create a new filter and name it Translate
- add a Filter Criteria that would be always true (e.g
- add a Filter Action
~/bin/mail_translate.pl
- open the Advanced tab and un-check everything except for , you can also set a shortcut and an icon here.
- In Kmail go to
- Putting the script in place and configuring it
- save the following script to a file named mail_translate.pl and put it in your ~/bin directory.
#!/usr/bin/perl use Email::MIME; my $from_language = 'en'; my $to_language = 'he'; my $translation_command = "translate "; my $languages_pair = "-f $from_language -t $to_language"; my $line; my $message=''; while ($line=<>) { $message.=$line; } my $email = Email::MIME->new($message); my @parts = $email->parts; my $separator = `echo "translation" | $translation_command -f en -t "$to_language" -`; chop $separator; rec_parts ($email,@parts); sub rec_parts { my $parent = $_[0]; my @parts = $_[1]; for $part(@parts) { my @sub_parts = $part->parts; if (@sub_parts > 1) { rec_parts ($part,@sub_parts); } my $type=$part->content_type; if (( $part->content_type =~ m[text/plain]gi )||( $part->content_type eq '')) { my $body = $part->body; $body=~s/['"`]*//g; my $translation_body=`echo "$body" | $translation_command $languages_pair -`; $translation_body=~s/['"`]*//g; my $msg=$body."\n\n---"."$separator"."---\n\n".$translation_body; `kdialog --title "$separator" --msgbox "$msg"`; } } } print $email->as_string;
- Make the script executable using
$chmod a+x ~/bin/mail_translate.pl
- Configuring the script to suit your needs.
- Currently the script will translate from English (en) to Hebrew (he), you probably need another type of translation. to change that settings look inside the script for the phrase $from_language = 'en' and $to_language = 'he' and replace the 'en' and 'he' parts with the combination you need, if you are not sure, a full list of language codes is available from the ISO 639-2 list.
- Testing
- before charging innocent E-Mails and translating them first try that on something you don't mind to lose, look in your trash or spam folder. right click on any translatable item A dialog box should pop-up with the original message followed by it's translation.
- Troubleshooting
- If the script is not working you can test it outside of KMail to narrow down the responsible component. save a mail message as 1.mbox file and run in the terminal
$~/bin/mail_translate.pl < 1.mbox > 2.mbox
- If the script is not working you can test it outside of KMail to narrow down the responsible component. save a mail message as 1.mbox file and run in the terminal
- Testing
If the output file 2.mbox is not the same as 1.mbox then there is a problem in the script and it shouldn't be used.