KMail/FAQs Hints and Tips

From KDE Wiki Sandbox
Revision as of 18:30, 17 September 2010 by Annew (talk | contribs) (Markup edit 0.6)

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 "Settings -> Configure KMail -> Identities -> (Choose an identity) -> Modify -> Advanced -> Sent-mail-folder"


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 to store your mails on the server, not in the client.

Solution: In kontact, choose "Settings -> Configure KMail -> Accounts -> Receiving -> (Choose an account) -> Modify -> Advanced -> Trash folder"


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). 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: You now 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 "Select View Appearance (Theme)" - and change the theme to Classic. If you want to disable grouping by date, change the aggregation to Standard Mailing List. 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, View -> Message List -> Theme and View -> Message List -> Aggregation


Get 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 Settings > Configure KMail > Appearance > Fonts you can select Custom Font 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 "Select View Appearance (Theme)". Choose Configure, then Appearance tab. There is a list of "Content Items", 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.


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 Folder List now brings up several more configuration options. One section is headed 'Display Tooltips', and the choices are Always, When Text Obscured, Never. 'When Text Obscured' 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, --> Settings --> Configure KMail --> Appearance -->Message List - uncheck General --> "Display tooltips for messages and group headers"


Remove Alternate Line colourings

In System Settings->Appearance->Colors->Colors. for each color set except Common Colors (which doesn't have it), change the Alternate Background to be the same as the Normal Background.

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", aka 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 not click on any more messages.

  • With the KMail 1.10 shipped with KDE 4.1 or newer, right click on the folder and select Rebuild Index (you can do the same from the Folder 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. Delete 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 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 Settings > Configure KMail > Composer and you will see a button "Edit Recent Addresses"


Problem: 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

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 Reply 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 2d. You'll then need to train the spam tool you just added (bogofilter): http://userbase.kde.org/KMail/Tools#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 'Mark all messages as read', from either the 'Folder' menu or right-click on the folder int he tree view side panel.

Symptom: You experience very long delays when sending messages, and KMail is frozen while you wait.

Solution: There was a but 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 New|String in the first dialogue field. Type

network.protocol-handler.app.mailto

and then

kmailservice

Close firefox

Firefox 3 - In the Firefox menu, select EditPreferences, choose the Applications tab, then type mailto in the search box. Choose Use Other... and find /usr/bin/kmailservice


Set 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 systemsettings -> Default Applications -> Web Browser -> Open http and https URLs in the following browser -> firefox.

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

[General]
  • for all other Linux

in your user directory in .kde/share/config/kdeglobals add the line

BrowserApplication[$e]=!firefox

under category

[General]

If General category does't exist you should add it.

You can also use the script in userbase.kde.org/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: Settings -> Configure KMail -> Accounts -> Receiving (tab)-> "select the account to exclude"-> Modify->General (tab), uncheck "Include in manual mail check". 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 Settings->Configure KMail->Appearance->Message Tags. Now you will find that the (right-click) context menu, under Mark Message, offers you the choice of your defined tags.

Watch threads

If you want to follow a thread, right click and choose "Mark Thread"->"Watch Thread".

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: Settings -> Configure Filters

  • select Match all of the following
  • Add the conditions:
    • From -> Contains -> yourmail@maildomain [1]
    • List-Id -> Contains 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 Filter Actions choose Mark As -> Watched.

In the Advanced tab

  • Uncheck if this filter matches, stop processing here.

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 available filters list)

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 <keycao>S</keycap> key or in the menu Edit -> Find Messages.

  • Select Match all of the following[3]
  • Add the condition: Message Status -> is -> Watched"
  • 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 Include sub-folders.

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

Warning
The provided solution was tested limited number of times and should be used with caution.


  • Prerequisites, make sure you have those before starting
    • libtranslate
    • perl
    • perl module Email::MIME
    • kmail
  • Setting up a pipe filter
    • In Kmail go to Settings -> Configure filters
      • create a new filter and name it Translate
      • add a Filter Criteria that would be always true (e.g Subject -> Does not equal -> "321546543"
      • add a Filter Action Pipe Through
        ~/bin/mail_translate.pl
      • open the Advanced tab and un-check everything except for Add this filter to the Apply Filter menu, you can also set a shortcut and an icon here.
  • 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 Apply Filter -> Filter Translate 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 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.

Note
this script will only translate the Plain Text parts of an E-Mail message and not the HTML parts.