KMail/FAQs Hints and Tips/en: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 116: | Line 116: | ||
This recipe may not be applicable to KMail 2 due to move to '''Akonadi'''-based mail storage. | This recipe may not be applicable to KMail 2 due to move to '''Akonadi'''-based mail storage. | ||
===Configure GMail without OAuth=== | |||
''Solution:'' In '''KMail''', change option <menuchoice>Settings -> Configure KMail -> Accounts -> Receiving tab -> (Choose an account) -> Modify -> Advanced -> Authentication</menuchoice> from <tt>Gmail</tt> to <tt>PLAIN</tt>. | |||
For some personal reasons Google does not consider usual IMAP authentication methods as "secure", so you will need explicitly allow it. | |||
Go to the [https://myaccount.google.com/lesssecureapps Less secure apps] section of your Google Account and turn on <tt>Allow less secure apps.</tt> Details: https://support.google.com/accounts/answer/6010255 | |||
== Migration == | == Migration == |
Revision as of 06:00, 4 December 2018
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
Symptom: 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 Kmail, choose
Store trash mails in a special folder
Symptom: 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 Kmail, choose
In some versions you will need
(or Wastebin folder, depending on your distro)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 and Mageia don'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 (or Mageia) Control Center (MCC). Other than this name change, the method is as described above.
Store messages from separate email accounts in separate inbox folders
For POP create folders in ~/.kde/share/apps/kmail/mail/ (copy and rename the default folder). These then appear in the drop down list in
.Create other folders in the same location for sent mail. These can be set in
.This recipe may not be applicable to KMail 2 due to move to Akonadi-based mail storage.
Configure GMail without OAuth
Solution: In KMail, change option
from Gmail to PLAIN.For some personal reasons Google does not consider usual IMAP authentication methods as "secure", so you will need explicitly allow it.
Go to the Less secure apps section of your Google Account and turn on Allow less secure apps. Details: https://support.google.com/accounts/answer/6010255
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. Look at the output of the command kde4-config --localprefix
if in doubt.
From version 4.4 you may have some Akonadi-controlled entries that also need to be kept. Add to the above list -
- Everything 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: 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: 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.
You get the error "Unable to fetch item from backend" when entering IMAP folder
There are a number of possible reasons for this and it's something the KMail team hopes to tackle in time. Meanwhile, there are some work-arounds:
Work-around 1
- edit ~/.local/share/akonadi/mysql.conf
- Under the [mysql] section, add:
binlog_format=row
If this doesn't work, try work-around 2 (below).
Work-around 2
This one is mostly a matter of restarting so KMail can fetch those pesky items... Some possible steps:
Use Alt + F2 or Konsole to type: kquitapp kmail
, then wait a minute, then akonadictl stop
, wait a minute, type akonadictl start
, wait a minute, type kmail
. This stops KMail (closing all windows), stops the KMail backend, starts the KMail backend, starts KMail. Having a working internet connection increases the chances of success. Sometimes, you can also just do kquitapp kmail
, wait a minute, and start KMail again. Often, a few restarts seem to be needed. It is unclear what is the reason for this, but on bad network connections it is more likely to happen.
See also the below item for how akonadiconsole can be helpful.
Your mails are not being sent, without error messages
If KMail does not send mail without saying anything, the 'agent' responsible for 'dispatching' the mails can be stuck. Of course, you need to ensure you have proper network connectivity for mail to be send!
To remedy this, it might help to abort the current action and re-start it. First, quit KMail by using KRunner (Alt + F2) or Konsole and typing: kquitapp kmail
. Note that a normal Alt + F4 or does not do the trick! Wait a minute, then start KMail again. Now start akonadiconsole using KRunner (Alt + F2) or Konsole. Go to the , do a right-click and abort the current action. You will most likely get some error messages popping up. Go back to KMail and choose . Now it might work. If not, instead of aborting the current action, try toggling the offline/offline status of the Mail Dispatcher Agent or restarting things like mentioned in the workaround 2 of the problem above this one.
Problem: Wrong address autocompletion
Symptom: 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.KMail spellchecking doesn't work with the Deutsch dictionary
Symptom: Your default dictionary is set to "Deutsch", but when typing in German, the spell-checker doesn't alert you to mis-spelled words.
Solution: Change your default dictionary to "Deutsch (Deutschland)". It's worth remembering, too, that you can associate different dictionaries to each Identity, and also by using the
menu on a Compose screen, you can choose to have the dictionary used displayed while composing a message, and change dictionaries, using that, when desired.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.
Symptom: When you type in the composer window, characters appear very slowly.
Possible Solutions: This is a known bug. Some have reported that disabling then re-enabling desktop effects may help. Others have reported that switching to a desktop theme, other then Oxygen, works.
Symptom: When saving your SMTP password in the KMail SMTP configuration dialog you get a "kwallet is unavailable" message.
Solution: You need to reset the KWallet configuration for KMail.
- Stop KMail
- Start KDE Wallet Manager
- Open
- Delete the Kontact and KMail entries (Kontact or KMail entry may not be there)
- Save and close KDE Wallet Manager
- Start KMail
- Enter the SMTP password in the Configure Account dialog
- Save - answer yes to the KWallet dialog
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, typeabout: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 typemailtoin the search box. Choose 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
.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 doesn't exist you should add it.You can also use the script in Tutorials/Modify_KDE_Software_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.KMail2 Issues
KMail2 doesn't send mail
Some users find that mail does not go out, and it appears that smtp is missing, even though the Settings page looks correct. It has been reported that this is cured by opening akonadiconsole and adding Mail Dispatcher Agent.
If the computer was suddenly turned off in suspend mode (e.g. by a power cut) sometimes e-mails simply stay in the outbox without being sent, but no error message is generated either. This may be due to the fact that the Mail Dispatcher Agent is set to "offline" in the configuration file during suspend and is not changed back due to the "crash". Edit the following file:
~/.config/akonadi/agent_config_akonadi_maildispatcher_agent
and change
[Agent] Online=false
to
[Agent] Online=true
Clean start after a failed migration
In case migration from KMail 1 to KMail 2 fails or you have weird problems after it, you can try to do a clean import of your data, instead of migrating the existing settings. Be warned, that needs more manual setup, so do only if you are confident with setting up again your KMail accounts, and it can generate a large amount of network traffic for IMAP resources.
1. Stop Akonadi and related applications - quit KMail/Kontact/KOrganzier, and issue this command:
akonadictl stop
Make sure no Akonadi or MySQL process is running:
ps ux | grep mysql
ps ux | grep akonadi
They should not show anything else but the grep process itself.
2. Remove old Akonadi database and config - delete the following folders
~/.local/share/akonadi
~/.config/akonadi
Delete also the files starting with akonadi from
~/.kde4/share/config
3. Restart Akonadi server
akonadictl start
4. Add back the accounts
Now it is time to add back your account. You can use KMail (Kontact) for it, or you can use the akonadiconsole tool.
In KMail:
and use .If you use IMAP, add a new
. If you want disconnected mode (so you can read the mails offline), enable it on the tab. Be sure to check that you are subscribed to all your important folders.You might already see a
resource. This points to a local maildir folder. You can either modify this to point to your existing maildir folders or you can add a new resource for local mails.When adding a maildir resource you can choose between
or . Unless you have a mixed folder containing both maildir folders and mbox files, you should choose . For independent mbox files, like the one in the /var/spool/mail, you can set up a new MBox folder.Add the POP3 accounts as well. In case you have multiple Local Folders set up, choose on the
tab the destination folder where the newly downloaded mails are put.For all accounts, configure the mail check interval. For Local folders disable interval checking and also disable
in the .Add the sending (SMTP) accounts.
5. Fix your filters, identities and favourite folders
If you have client side filtering (common with POP3 mails), go to
and fix the destination folder for the filters, they most probably are wrong. Otherwise mails will end up in folders you don't expect.Spam filter (at least in version 4.7.3 and earlier) does not work as expected in that the rule that the wizard creates does not send spam to the folder you have defined.
The workaround for this is to change the "spam" and "spam unsure" (if the spam filter you use support that) from looking at Status-fields in the header X-Spam-Status to look "Anywhere in headers" for X-"yourspamfilter"-Classification: SPAM or unsure. Look at the filters the wizard creates and copy the "contains" part. Example for Spambayes: X-Spambayes-Classification: spam and X-Spambayes-Classification: unsure
You also need to verify the identity settings and set the sent-mail, drafts and templates folders to point to the right folders. To do that go to , modify the identity, go to the tab and modify the above mentioned folder settings.
Check also that your Favourite Folders are the ones you have chosen before.
6. Initiate a mail check
Start a mail check for your accounts. I suggest doing it per account
First do for IMAP, if you have.
Next is to check (import) your local mails. One solution is to do a full check in one go
and select the local account, the other is to click one by one on the folders, that should initiate the check for that folder (alternatively right click on the folder name and select ).The initial import might be slow and could use a lot of memory, especially in case you have folders with a large amount of mail. In that case per-folder check is preferred. In case the check (complete or for one folder) is finished and the memory usage is still high, you could restart the Akonadi server - as seen above - or just the maildir agent, if you use akonadiconsole
. Don't worry, this high memory usage is only for initial import.
Initiate a check mail for POP3 resources.
Hopefully after these steps, you will have a much nicer KMail experience.
Local Folders is added over and over
In some cases you might end up with a maildir account pointing to a certain place (like $HOME/Mail), but you still see a Local Folders folder in the folder list with Inbox/Outbox/Trash/Drafts/etc. subfolders and KMail keeps putting mails there, especially sent mails. The problem is that certain folders are marked as special folders (system folders) and if you don't have them, KMail cannot operate correctly. That is the reason why it keeps re-creating that folder. A this time there is no easy way to change this in the UI for all types of special folders. Here are what you can do:
- The Sent-Mail, Drafts and Templates folder is configurable for each identity. Go to , select your identity, click on , go to the tab and set the folders to point to the right place.
- The default Inbox is configurable for each POP3 account. Go to , select your POP3 account, click on go to the tab and set the .
- For IMAP accounts you can configure the Trash folder. Do like above. The setting name is Trash folder.
- The most problematic part is the Outbox. First, locate specialmailcollectionsrc in your KDE configuration directory ($HOME/.kde4/share/config or similar). It contains something like this:
[SpecialCollections] DefaultResourceId=akonadi_maildir_resource_0
Now start akonadiconsole
, on the tab, locate your local account in which you want to have your Outbox folder, click on it and note the identifier that appears in the lower part ( akonadi_maildir_resource_XXX or similar). Put this identifier in the above shown specialmailcollectionsrc, by replacing the existing one.
After that restart akonadi (you can do from the akonadiconsole,
or from command line withakonadictl restart
Now remove the Local Folder that you don't want to use anymore.
If it keeps reappearing and the Mail Dispatcher Agent still crashes, you need to do one more thing in akonadiconsole. Go to the
tab, find the outbox you want to use, right click on it, , tab, enter SpecialCollectionAttribute then , double click on the near the SpecialCollectionAttribute and enter outbox. Add also another attribute, the attribute name has to be ENTITYDISPLAY and the value ("outbox" "mail-folder-outbox" "" ()) (just copy paste from here). Restart akonadi and now you should be able to remove completely the unneeded local folder account.If you "lost" your Trash folder and want to set a new folder to act as Trash, you can use the same approach described above, but for the SpecialCollectionAttribute value enter trash .
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 [email protected] 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 your 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.
Edit and save messages without changing message parameters
Get rid of that long mail trail in top-poster replies. You can edit a message and remove unwanted parts by saving it to disk (
), editing it separately in a text editor, and then import it again. Just delete the original. This method also works to detach encapsulated messages and keep them as separate messages.Easily archive all e-mails
Create a filter that matches all messages and copies them to a folder, and then create a shortcut to manually apply this filter. It can be done following these steps:
- In KMail go to
- Click the button on the left and give your filter a name (this will appear on the shortcut also, I simply used "Archive")
- Under Filter Criteria, choose
- Under Filter Actions, choose and select the folder you want to archive to.
- In the tab, uncheck
- Then check , and .
- Click the button with the icon to select a shortcut (I used q because it didn't conflict with anything else)
- Choose an Icon for the shortcut menu
- Click or and you are Done!