Welcome to the new Mahogany release! If you haven't installed the program yet, you probably want to start by doing it. Please check if we don't have prebuilt binaries for your platform (currently we only provide binaries for Linux and Win32). If not, you'll have to build it from the sources: please refer to the README file for the compilation instructions. Mahogany should generally work on any modern Unix flavour but, of course, you can always contact us if you have any problems with building it.
All sections here except the first one present only historical interest, please skip them unless you're updating from a very old version of Mahogany.
By far the main new feature in this version is the integration of DSPAM According to http://www.nuclearelephant.com/projects/dspam/:
DSPAM (as in De-Spam) is an extremely scalable, open-source statistical anti-spam filter. While most commercial solutions only provide a mere 95% accuracy (1 error in 20), a majority of DSPAM users frequently see between 99.95% (1 error in 2000) all the way up to 99.991% (2 errors in 22,786).
Please see section for the description of how to configure and use
DSPAM.
The most noticeable new feature is the new composer. Unfortunately, it is less
powerful than the old one as the new one is text-only and not rich text but it
is also significantly less buggy and simpler to use. Another big internal
change is that the built in Python interpreter now works again and you can use
it to write filter functions and do other nifty things (see section
). Finally, we now have a working version for Mac OS X.
Other than that, the focus of the new release is yet again more bug fixing than adding new features. As usual, some of them were still added:
First of all, too many bugs to be mentioned here were fixed. During more than a year since the last release we mainly concentrated on making Mahogany more stable and faster (or at least less slow) rather than on adding new features.
Yet, inevitably, some of them still crept in and here is an incomplete list:
Finally not really a new feature but an important achievement in our struggle for world domination: Mahogany now runs under Mac OS X as well! Note that Mahogany is a real native (Carbon) application and doesn't require GTK+ or X11.
This time the most important changes have happened to the already existing features many of which were dramatically improved. Support for both IMAP4 and POP3 has got better, many UI improvements were done and too many bugs to mention here were fixed.
The main change without doubt is the complete reorganisation of the
program internals which now allows us to only download the headers
shown on the screen from server instead of getting all of them. This
means that the time needed to open a folder is now almost independent
of the folder size and Mahogany can be used without troubles with
folders containing messages (and maybe more - but this wasn't
tested yet).
But what would be a new release without some new features? So here they are:
Again, most of the effort went into optimizing the program for speed. Filtering and moving mail messages on IMAP servers is now an order of magnitude faster and startup time has been reduced too (especially under Windows). Several fatal bugs which had unfortunately crept into Win32 release were fixed as well.
The new features this time include
The main changes in this release concern the Mahogany internals: the stability and efficiency have been both greatly improved, in particular it is believed that all fatal crashes using IMAP servers are now gone. Deleting, expunging and changing the status of the messages is now much faster, especially for the folders with a lot of messages. Of course, there are also several new features:
Note: the version 0.61 wasn't officially released
A couple of new features, most importantly:
Most importantly, all known major bugs in 0.5 have been fixed in this release. We still have some minor buglets and lots of wishes and enhancements on our list, but all serious bugs should be gone now. A couple of new features have been added:
This release has long been delayed, mainly due to us waiting for changes in wxWidgets to be completed. As we introduced new features in the meantime, those introduced new delays, and so on. It has been more than half a year since the last release, so changes are major. We hope to stick to a much faster cycle of minor update releases for the future. The main new features are:
The main news is, of course, the long-waited for availability of Win32 version. Also:
Release 0.22a is mainly a bugfix release against 0.21a.
First, there are some user-visible changes against the latest version, most notably the much improved message editor. This is still work in progress and the next release should add the sorely missed cut and paste support which only recently became functional in the underlying wxGTK toolkit. Also, configurability has been much extended. For the first time, Mahogany now defaults to collecting all mail from the system's INBOX (whatever that is) to a central ``New Mail'' folder. It can easily be set up to watch any number of different mail accounts or newsgroups and collect mail from them.
This release got a bit delayed because we decided to finish some long planned changes under the hood, mainly a complete rewrite of the internal configuration system which now provides the inheriting configuration settings we had planned, something that will become obvious in the next release when full GUI support for it will be added. Also, we seriously improved the mailfolder handling code to reliably handle all kinds of error conditions, such as modified or disappearing mailboxes or terminated connections and recover from them safely. Also, Mahogany now has full working support for IMAP, NNTP and newsspools.
Apart from this there were many minor fixes and changes, both GUI and mail code, documented in detail at the end of the TODO file.
As you can see, we have big plans for Mahogany. To achieve all this, we need some help. Areas where we would use some help are
Mahogany is copyright by The Mahogany Development Team (Founding members
Karsten Ballüder and Vadim Zeitlin). It is licensed under the Mahogany
``Artistic License'' as stated in section or,
alternatively, under GNU General Public License. Some part of the
source tree distributed with Mahogany is not covered under this license.
These additional sources can be found in the ``extra/src''
subdirectory. Please check the files in the individual directories
for their copyright notices. However, they can be freely distributed
under certain conditions.
Recently discussions about which license to chose for which project provoked major flamewars in the Unix community. There is a trend to put everything under the GPL or LGPL1.1. We do not want to get involved in this highly emotional and political discussion. Our intent is to allow everyone to use and modify Mahogany while preserving some form of control over its development. That is why we chose a modified version of Perl's Artistic License. It is both more and less restrictive than the GPL in certain ways. We do not believe that there is one right license for everything. The Mahogany Artistic License is much simpler and easier to understand than the GPL, so we feel more comfortable with it. If you want to do something with Mahogany and feel that the license poses a problem, please contact us! We do not want the license to be a problem and any reasonable request for deviating uses of Mahogany will be likely to be granted. If in doubt, ask us and we will find a solution.
The intent of this document is to state the conditions under which this software package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications.
This license is based on Perl's ``Artistic License'' and has been adapted to better suit Mahogany. It aims to confirm with the Open-Source specification. If you should have any questions about this license, are unhappy with it or simply would like to comment on it, please get in touch with us.
``Package'' refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification.
``Standard Version'' refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below.
``Copyright Holder'' is whoever is named in the copyright or copyrights for the package.
``You'' is you, if you're thinking about copying or distributing this Package.
``Reasonable copying fee'' is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.)
``Freely Available'' means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it.
When you start Mahogany for the first time, it will display the license and conditions of use and ask you to accept or reject the license. If you do not accept it, Mahogany will terminate. If you have any questions about the license or want to otherwise comment on it, please email the development team at mahogany-users@lists.sourceforge.net .
The use of the c-client library requires us to display the following copyright notice:
Copyright 1999 by the University of Washington
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies and that both the above copyright notice and this permission notice appear in supporting documentation, and that the name of the University of Washington not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. This software is made available "as is", and THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Mahogany can be linked with the OpenSSL toolkit to support secure communications over SSL. In that case, we must give due credit to the authors and copyright of this library:
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit .This product includes cryptographic software written by Eric Young (eay@cryptsoft.com) This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
Mahogany is built using wxWidgets cross-platform class library - without it, Mahogany wouldn't have been possible.
To get started on Mahogany, you should look at the following sections of this manual:
When you start Mahogany for the first time, it will first ask you to accept the terms of its license. Note that you must accept it to be able to use the program. After doing it, you will see the installation wizard. It will guide you through several pages whose purpose is to get the information absolutely required for running the program and also prepare a useable initial setup for you. Please avoid abandoning the wizard unless you really know what you are doing, so just click next and ignore the checkbox on the first page for now.
It is quite likely that you already have some other email program installed on your computer. Mahogany may import the configuration settings for some of them (currently, Netscape Communicator, Pine and XFMail but we have plans to add support for more programs in the future) meaning that it will provide your existing settings as the default values in the next pages. Of course, it is absolutely safe to just skip this step and continue directly.
Next page asks you for your minimal personal information. You may enter an empty personal name here if you wish (although it is better to enter something) but it is required that you enter a valid email address below. It will be used as your default return email address. Note that you will be able to change this address in the future in the program prefernces dialog as well as add other identities, possibly with different email addresses, later.
The next page proposes you to setup some default servers. Windows users must specify an SMTP server here. Under Unix you may leave it empty if you want to use a local MTA such as SENDMAIL, QMAIL or EXIM. For the other servers you are free to enter the server name or leave the entry empty if you don't want to use it.
The following page is more interesting as it gives you the possibility to configure some of the basic Mahogany options to your liking. Let's consider them in order:
The main window is broken in three parts. There is a tree of folders
() on the left and a view of the currently selected
folder (
) to the right of it which itself has two
parts: the upper one shows the list of all messages in the folder
while the lower one shows the currently previewed message.
The installation wizard has created a small number of standard folders that Mahogany uses itself. Exactly which folders you now see on your screen depends, of course, on the choices you have done in the wizard but it should be a subset of the following list:
Although the installation wizard did create entries for POP and/or IMAP servers in the folder, they are probably not very useful right now. Or maybe you didn't create them then and want to do it now - then just choose ``Create'' item from the ``Folder'' menu and follow the instructions. If you are already fed up with the wizards you may prefer to dismiss it on the first page by selecting the checkbox there and enter all the folder parameters directly in the folder properties dialog.
If you have let the wizard create the folder, you still need to use the folder properties dialog to customize it. By the way, this dialog can be accessed by selecting the corresponding item either from the ``Folder'' menu in the menu bar or from the popup menu you obtain by right-clicking the folder in the tree.
Browse this dialog to get an idea of some of the options you may change. Please note that most of the options in the first, ``Access'', page cannot be changed after the folder creation. The different options are described in more details elsewhere in this manual.
Right now let us just give some examples of the typical configurations:
** This is currently missing, see the text in the FAQ. I will explain here how to set up your accounts.
The following options are accepted. When both short and long options are listed either one can be used and if the long options requires an argument, it must be specified for the short one as well. The delimiter for the short options is either / or - but only - can be used for the long ones.
The remaining command line arguments are taken as the recipients for the new message.
If either of the -bcc, -cc, -subject, -newsgroup or
-body options is given or a command line argument follows the options,
the composer will be automatically opened on startup. If the ``Always run only
one instance'' option (see ) is set, the composer will be
opened in the already running instance of the program, if any.
Please do use -debug option if something goes wrongly, it can give
valuable information about the problem! See also the corresponding option
().
If you want to use the configuration files under Windows (by default the registry will be used to store the program options) you should use the -config=file option each time when running the program. The easiest way to do it is to create a shortcut to M.exe and enter this argument there.
When run for the first time, Mahogany creates a directory called .M in the user's home directory. The file $HOME/.M/config will contain the current program configuration for this user. Only values different from the default configuration are stored here. If you want to obtain a list of all possible options (although arguably if you are so curious, you'd better read Mahogany sources directly), you can manually add the entry
RecordDefaults = 1to the [M/Profiles] section of the configuration file. This will cause all values which are used to be written to the configuration file.
Note that an easy way to ``reinstall'' Mahogany is to move $HOME/.M/config file to some other location or even delete it and restart Mahogany - then it will go through the installation process once again.
Mahogany can be pre-configured on a system wide basis by supplying a M.conf file in the installation directory (e.g. /usr/share/mahogany/M.conf). The syntax for this configuration file is identical to the user's configuration file, so you can just copy a user's file to this location and edit it by hand. Useful settings for a system wide default are servers or mail return addresses. Entries prefixed with an exclamation mark ``!'' are marked as immutable and cannot be overwritten by the user. This can be used by the system administrator to hard-wire certain settings, like, for example the return mail addresses or mail servers to use.
Under Windows the user settings are by default stored in the registry, under
HKCUSoftware
Mahogany-Team
M key
where HKCU stands for HKEY_CURRENT_USER.
If you encounter a mention of some Entry in the group [Group]
of the config file, it maps to a value Entry in the key
ProfilesGroup under the root key specified above under
Windows.
The default behaviour described in the sections above is the simplest possible and works well as long as Mahogany is only used on a single machine. However it is not ideal if you want to use it from several different installations. It should be noted that in the simplest case, when all these installations use the same operating system and are similarly configured, you may simply transfer the Mahogany configuration file 1.2 to the other machine, however this doesn't work if you want to use the program from both Unix and Windows as in such case some settings are bound to be different.
The solution is to use multiple configuration sources (they are called sources and not files because, in general, the settings can also be stored in other locations such as on a remote IMAP server). To set this up, choose the corresponding command from the "Edit" menu: it will present you with the dialog allowing to create more configuration sources (currently only local files are supported) and to change their priority by moving them up or down in the list.
Here is an example of a setup recommended for IMAP users:
Mahogany's main window is vertically divided into two parts.
On the left it has a tree view () of all available
mail or news folders. On the right of it, it shows the currently selected
folder in a folder view (see
).
The folder tree shows a hierarchical view of
all folders managed by Mahogany, this includes both mail folders
and newsgroups. Folders can be grouped hierarchically and inherit
settings from their parent folders (e.g. the server host). Clicking
the right mouse button on any tree node will pop up a menu with some
options. To open a folder or connection to a server for the first
time, choose ``Create New Folder'' which will show you a dialog
().
This menu entry allows you to open a
connection to a server or view a mailfolder. No matter whether it
is a POP, IMAP, NNTP connection , a file based mailfolder, a newsgroup
or whatever, Mahogany treats them all the same and calls them all
``folder''. The dialog has several pages which include at least:
Access (), New Mail (),
Compose (
) and MessageViewer (
).
A Folder View is a window or part of a window displaying the contents of a mail folder or a newsgroup. It consists of two parts:
The messages are displayed in the folder view according to the curent sort order which may be changed either from the folder properties dialog (of course, it can be set independently for each folder or be the same for all folders at once) or by clicking on the column header. In the latter case, clicking on, for example, ``SUBJECT'' column, will sort the messages by subject if they were not sorted by subject already, otherwise it will sort them by subject in the reverse order. This allows you to sort the listing on some column by just clicking it and to reverse the sort order by clicking it again.
Most of the columns are self explanatory. It should be mentioned that the date format is configurable from the folder view page of the folder properties dialog and you may set it to anything you like. In particular, some people find it very useful to show the date in GMT instead of the local time.
The status column (which is usually the first one, although you may change the column order from the same page already mentioned above) may be empty or contain one or more flags:
Symbol | Meaning |
* | message is flagged or important |
A | message was answered to |
D | message is marked as deleted and will disappear after expunge |
U | message is unread: you haven't seen its body yet |
R | message is recent: this is the first time you see it |
N | message is new: it is recent and unread |
Accordingly, if nothing appears in the status column, the message was read but wasn't deleted nor flagged and this is not the first time you see it. Note that not all kinds of folders support all kinds of flags: while IMAP servers always do, POP servers are not capable of storing the message flags and so all messages will always appear as new in them.
Note that each message flag has also the corresponding colour which is used to highlight the message in the folder view and also to highlight the folder containing this message in the folder tree. These colours can be changed from the folder view page of the options dialog, as usual.
The reaction to a mouse click in the list of messages depends on the preferences setting ``Preview message when selected``. When the option is selected, a single mouse click will select the message and load it into the preview window. If the option is not set, the message will only be selected but not previewed automatically, which is very useful for accessing mail folders through a slow connection. The same setting effects the behaviour of the space bar, it acts exactly like a single mouse click in the window and will only cause a message to be previewed if a single mouse click is configured to do so. The space key can be used to view the message under the current cursor.
Other keyboard bindings are summarized in the following table (except where explicitly noticed, lower and uppe case keys work do the same thing):
Key | Action performed |
* | mark/unmark message under cursor |
SPACE | preview message under cursor |
D or DEL | mark selected messages for deletion |
U | remove deletion mark from selected messages |
X or # | expunge messages marked for deletion |
C | copy marked messages to another folder |
M | move selected messages to another folder |
S | save marked messages to files |
P | print marked messages |
R | reply to messages |
F | forward messages |
O | open messages in separate window |
H | toggle display of all headers |
BACK/PG UP | scroll the message preview one page up |
PG DOWN | scroll the message preview one page down |
Ctrl-U | view next unread message |
/ | start forward search for a string |
? | start reverse search for a string |
n | go to the next match (after doing a search) |
N | go to the previous match (after doing a search) |
Note that all commands for which it makes sense operate either on the current message only if there is no selection or on all selected messages at once. You can use the mouse or the cursor arrows together with the SHIFT or CTRL keys to select multiple messages at once. The commands which affect the message preview are inactive if no message is previewed.
Mahogany supports importing the settings from a few other popular mail clients. The current list includes Netscape, Pine, XFMail and Eudora. Depending on the mail client only part of its settings may be imported but in the best case Mahogany can import the address books, the configuration settings, the filter rules and the list of folders to use. To use this feature, choose "Mail|Import..." command and follow the dialogs.
Even if you don't find your email client in the list proposed in the dialog, everything is not lost. You won't be able to import its configuration information nor the filter rules but you might still recuperate the address book information if your program can export the addresses in the standard comma separated format or as vCards. In either case you can then import just the address books from the address book editor.
Finally, Mahogany can automatically create the entries in the folder tree for all MBOX (standard Unix format, also used by Eudora) files under the given directory. To do this, select the folder in the tree which you want the new folders to appear under and choose "Folder|Import folder tree..." command.
The folder named INBOX has a special meaning. It is the main system mailbox and cannot be deleted or renamed. All new mail will arrive in here. At present, Mahogany leaves all messages in the system inbox. Mahogany will collect mail from several different incoming mailboxes, e.g. the INBOX and some additional POP3 accounts, and move them to a new folder.
Created by Mahogany the first time you start it, this is a file mailbox which by default receives all new mail. If you mark any folder as incoming, its contents will be checked regularly and any new mail in it moved to the ``New Mail'' folder. If you do not like this name, you can change it in the preferences dialog. Mahogany should in all situations recover from closed connections or disappearing mailboxes, so it is safe to let it run over long periods of time. If a server connection times out, you will receive one or possibly a few error messages but Mahogany will reopen the connection and continue as usual.
The folders are organized in a tree structure: this is purely for the convenience of the user, so any folder may contain as many other folders as needed. Folders can be managed either from the top level menu or from the popup menu in the folder control invoked by pressing the right mouse button in it. You can group folders together by making the sub folders of another folder. This builds no physical connection between the folders but makes the sub folder inherit certain configuration defaults settings from their parent folder. We will soon add a ``folder group'' folder type not representing any mailbox but just being a group of folders.
Mahogany supports two protocols for accessing remote mail servers: POP3 and IMAP. While POP3 is more commonly available, IMAP is definitely the superiour protocol and should be used where available. It will generally give you more functionality and will be much faster over slow connections. Both normally require you to log in with a username and password, but can be configured to work anonymously if supported by the server. IMAP additionally allows you to access any mailfolder file on the remote machine. For example, if you use Mahogany on a remote machine ``atwork.company.com'', you might have your local INBOX (which could be /var/spool/mail/MyUserName on a unix box) and also your ``New Mail'' folder, which usually is ``~/.M/New Mail''. With IMAP, if you log in from home, you can not only access your INBOX on the atwork.company.com mail server, but also the ``New Mail'' folder there, by telling Mahogany to use ``/home/MyUserName/.M/New Mail'' as the path to the mailbox file. Like this, you can access any mail folder on that machine that you have access to locally, making remote access to your mail much more flexible than just accessing your new messages.
There are two ways to search for the messages in Mahogany. One is very simple:
just press '/' or '?' in the folder view and then use
'n' and 'N' keys to go to the next and previous matches
respectively (see also ). This allows to only search for a
string in the message header and to do it inside one folder only - but to do
it quickly.
If you need more powerful search, you should use "Folder|Search..." command which opens the search dialog where you can choose more options. In particular, you can use buttons there to add other folders to search (by default only the current folder is searched). If any messages are found, they are shown in a separate folder view.
Mahogany has powerful builtin filters. The filters are written in a real (albeit small and specialized) programming language but there is also GUI support for creating them. All the existing filters appear in the dialog shown by the ``Filters rules'' command of the ``Edit'' menu. You can also access the filters configured for a specific folder by selecting ``Filters'' from the ``Folders'' menu. The difference between these dialogs is that not all filters are associated with all folder, i.e. you may have two filters and two folders but the first folder can use only the first filter rule and the second - only the second one. The global ``Filter rules'' dialog allows you to manage all the filters but after creating a new one you still must associate it with some folder or folders for it to be useful.
After creating some filters you may go to the ``Filters'' dialog of the ``Folder'' menu (you will also have an opportunity to go directly there immediately after the filter creation) and check the filters you would like to use for this folder. The filters are applied in the order in which they appear in the list, so use the up and down buttons to arrange them as needed: the order of filters is important because if one filter had decided to move a message to another folder the subsequent filters won't process this message at all.
This dialog allows you to edit an individual filter. You may use the different controls to compose it, note the ``More'' button which allows you to add a new condition to the rule. You may notice that when you change something in the upper part of the dialog, the text in the lower part is updated to reflect it: this text is the source of the filter program which Mahogany will apply. By experimenting with the dialog controls it should be easy to see the different possibilities of this language. In a few words, it is a C-like language which has several built-in functions for testing for the various conditions and performing some actions. All of the usual C operations are supported.
You may also edit the filter program text directly but be warned that it will be impossible to use the GUI controls to modify it then because they are not flexible enough to be able to express an arbitrary filter program.
There is another, quicker, way to create filters as well: this is done with ``Quick filter'' command from the ``Message'' menu or the popup menu displayed when you right click the message. It allows to easily create filters for the most common cases. Note that you may update the filter rule later using the full-fledged filter edit dialog if you decide to add more conditions to it, for example.
After some time of using the program, you will probably end up with quite a few filters. Several dialogs in Mahogany will help you with managing them:
Almost, but not quite all constructs of the filter language are accessible from the GUI editor, so if you need something which it doesn't provide yuo can try editing the filter text directly. Be warned, however, that you wouldn't be able to use the GUI again if you do this.
The syntax of the filter language is very simple. It is C-like but a program consists just of a sequence of if statements. Inside each of them you can have a condition of (almost) arbitrary complexity using the usual C operations &&, || and ! and the built-in filter functions. The filter functions correspond to the choices in the GUI dialogs.
Each test also has the associated code block executed only if it succeeds. Here again you can use the built-in functions which are the same as the verbs in the GUI controls.
Mahogany supports pluggable spam filter modules. In theory it means that anybody can write such modules but in practice only two of them currently exist and are described in details below.
However independently of the spam filters used, the interface to them remains always the same:
To actually use the spam filters you need to configure a filter rule (see
) using them. Usually you just create a rule named "Spam" using
the "Seems to be spam" test and "Move to some Junk folder" (you will need to
create this junk folder too) as its action. If you feel very confident in the
spam filters (or just have backup of your mail somewhere) you can also
configure the rule to delete the messages recognized as spam immediately but
this is not recommended.
This is a very simple filter which looks for some common characteristics of spam mail in the message headers. Its accuracy is much worse than that of DSPAM but it is also much faster to execute and doesn't need any training. You may configure its options in the "Edit|Spam filters..." dialog.
DSPAM is a statistical spam filter which means that to use it in the optimal way you need to train it first. Just open the "Edit|Spam filters..." dialog and use the Train button on the DSPAM page. For the best results you should train the filter with 2500 spam and 2500 non-spam (ham) messages. Be warned that this can take a rather long time and also consumes significant amount of disk space (of order of 50Mb) - however the results are well worth it.
If you don't have enough messages to train it with, you can start using it
immediately but in this case you should be ready to manually mark messages as
spams as explained in . Please also remember to actually create a
spam filter rule to really use DSPAM at all.
All of these fields accept either mail addresses, aliases or folder names. Aliases must be expanded by using the tabulator key or the Expand button next to the fields. If multiple entries match the text, you will be prompted with a list to choose from.
Folder names can be entered by prefixing them with a hash ('#') sign. This will cause a copy of the message to be saved in the folder with this name. If no such folder exists, it will be created in the mail folder directory. For example, entering ``joe.user@foo.com, #myMail'' in the To: field, will send the mail to Joe User and save a copy of it in the folder ``myMail''. Note, that if you have your folders organised hierarchically, you must specify the full path to the folder in the folder tree control. An example: If you have a group of folders in the tree, called ``Work'' and want to save a copy of the message to the folder ``TODO'' which is a sub-folder of ``Work'', you need to add ``#Work/TODO'' in the address field. Instead of using the To: field for this, you can also use CC: or BCC:, there is no difference.
The primary address to which to send the message, multiple addresses can be entered and must be comma-separated.
CC means Carbon Copy - copies of the message will get sent to the addresses listed here.
BCC means Blind Carbon Copy - like CC:, copies will be sent to the addresses listed here, but the addresses will not be stored in the mail header. This allows you to send copies without other recipients of the message knowing about it.
Key | Function |
ALT-D | delete word |
CTRL-Y | delete line |
CTRL-U | delete to begin of line |
CTRL-K | delete to end of line |
CTRL-C | copy selection to clipboard |
SHIFT-INSERT | |
CTRL-X | cut selection to clipboard |
SHIFT-DELETE | |
CTRL-V | paste text from clipboard |
CTRL-INSERT | |
CTRL-S | search for text |
CTRL-T | search same text again |
Although you may directly enter the addresses of recipients of your message into the different address fields (``To:``, ``Cc:`` and ``Bcc:`` although the last two are optional and so might not appear), there is a more convenient way to do it using the address book. To insert an address fromyour address book you should type the first few letters of either the ``nick name'' (or the ``alias'') for this address or the the first letters of the e-mail address and press <TAB> key or click on the ``Expand'' button. If there is only one possible expansion for the letters you have typed, Mahogany will automatically replace them with the corresponding full e-mail address. Other possible cases: either there are no matches at all and a message in the status line of the window will tell you so, or there are more than one match in which case you will be presented with a choice of all possible completions.
Hint: if you press <TAB> immediately after the address expansion it will bring you to the next text entry zone and will not attempt the address expansion the second time.
A special feature of the address expansion is the so-called ``group extension'': if you type the first few letters of an address group name (see ``Address Book Editor'' description for more about it) it will be replaced by the addresses of all the addresses in this group. So, for example, if you have a group called ``Friends'' you may type ``fri'' in the ``To:`` text entry zone and after pressing <TAB> it will be replaced by the e-mail addresses of all your friends.
The composition window's appearance
depends on your configuration settings (). Generally,
it will at least show text entry fields to specify who to send the
message to, for the subject and a large editing window below for the
actual message itself. It also features an EXPAND button next to the
address field, which allows you to lookup addresses in the currently
loaded addressbooks. If you type in the beginning or a substring of
a name, alias or email address and either press the expand button
or the tabulator key, Mahogany will look up a list of matching addressbook
entries and either expand it directly or prompt you with the matching
choices. This works for the main address field (``To'') as well
as for the carbon copy addresses (``CC'' and ``BCC'').
If you specify an address in the ``CC'' or ``BCC'' fields,
these people will receive a copy of the message. The difference between
them is that the list of addresses in ``CC'' is included in
the message, while the ``BCC'' (blind carbon copy) addresses
will be suppressed in the message keeping them anonymous. If you enter
an address like ``#myfolder'', Mahogany will interpret it as
the name of a mailfolder and save a copy of the message to that folder
(in this case ``myfolder'').
This window is essentially identical to the mail composition window
(), but instead of specifying a mail address
to send the message to, you can enter one or more newsgroups names
(comma separated). The newsserver used depends on from where this
window was opened, if it was opened while reading a specific newgroup,
it will use the same newsserver that the newsgroup was read from,
otherwise it will fall back to the setting in the global preferences.
Mahogany uses the message templates to initialize the text of the new message whenever you start composing a new mail message or reply to or forward an existing one. By default, the standard templates are used which are empty for the "new mail" and "new article" and have some reasonable default values for the "reply", "forward" and "follow up". However you may define an arbitrary number of additional templates and also modify the standard ones using the "Edit|Templates..." menu command.
Beyond customizing the standard templates to suit your tastes, it is also often useful to define additional templates for the messages you write often. For example, a system administrator could have some ready to use reply templates for answering the standard user questions and so on. If you create new templates, it is convenient to use the Shift-Ctrl-<X> versions of the usual commands, i.e. instead of using F in the folder view to forward a message you may use Shift-Ctrl-F to choose the template first. The same applies to the other commands.
When you edit the templates in the dialog, most of the functionality is accessible via the right click menu in the control containing the template text, however it may sometimes be necessary to edit the templates by hand so the next section gives a brief description of their syntax.
First of all, any normal text appearing in the template will be copied as is to the text of the new message. Special constructions are introduced by the variable expansion, that is anything starting with the dollar sign ($). The general syntax of a variable expansion is the following:
$([category:]name[?arguments][{+|-|=}<number>[!]])
The possible values of category and name are described below. Both of them are "words", i.e. are sequences of alphabetic characters. The category also may be implied by using the special brackets: $`...` implies the category "cmd", i.e. executes the command specified inside the single quotes and $<...< implies the category "file" (both of these shortcuts come from standard Unix shell notations).
The arguments are optional and if they are present are either a comma-separated list of words (i.e. alphabetic characters only are allowed) or another variable expansion. For example, the following will insert the quoted contents of the file after asking the user for a file name defaulting to foo.bar:
$(file:foo.bar?ASK,QUOTE)
$(header:X-UnixName?$`whoami`)
Finally, the optional tail {+|-|=}<number> may be used to justify the value: "+" aligns it to the right, "-" (which is default) to the left and "=" centers it in the text field of width number. If the number is followed by "!", the value is truncated if it doesn't fit into the given width instead of taking as much place as is required for it as it does by default.
After the description of the general syntax in the previous section, here are the possible values for the category and name parameter mentioned above:
This category contains the most commonly used variables and allows to write them in the shortest possible form, i.e. without any parentheses or braces around them and without the category name. The names in this category are:
The "message:" prefix gives access to the headers of the message being composed. It allows to use the same message template for composing messages to different people, for example, by reusing the value of To: header in the message text. It has the following variables:
The category "original:" gives access to the message being forwarded or replied to. Accordingly, you can't use this category in the templates for the new messages.
The "file:" category doesn't contain any fixed names, instead it allows you to insert the named file in the message text by using (full) path to it as name. There are two arguments: ask and quote. The first will ask the user for the file to insert during the template expansion (with default being the file name in the template) and the second one will insert the file prepending a quote marker before each of its lines.
The "attach:" category is very similar to the "file:" one, the only difference being that the contents of the file is attached and not inserted as text. It also supports ask but not quote arguments as the latter doesn't make sense for attachments.
Like the two previous one, this category doesn't have any standard names neither. The syntax "cmd:name" allows to execute an external command name and insert its output in the message text. The template arguments are passed to the command as command line parameters.
Very similar to the previous category, this one allows to execute arbitrary Python scripts. The syntax is "python:function" and you may additional string arguments which will be passed to the function.
Possibility to use Python functions allows to do almost anything in the message expansion. For example, to use different signatures in replies to different people all you have to do is to append "${python:sig?$to}" at the end of your reply template and add a Python function like this to your Minit.py file:
def sig(to): if to == "someone@some.where": return "Hello someone!" elif to == "someoneelse@...": return "Goodbye someone else" else # general case return "No special signature for you, sorry"
Using "header:" category you can change the values of the headers of the new message. This is mostly useful in the templates for the messages which are always sent to the same addressee as then you don't have to enter it manually each time. The name is the name of the header to set and the (only allowed) argument is its value. Any header names, standard or not, can be used.
One of the goals of the Mahogany project is to be as configurable as possible. Of course, it means that Mahogany has a lot of options - however we hope that it doesn't make the program more difficult to use because you have the complete liberty to ignore all options until you need to use them. Moreover, many program options are completely transparent to the user because they are automatically remembered by the program. All the other ones may be changed from the main options dialog which may be invoked from the "Edit" menu of any window.
Before starting to change options, it is important to understand that Mahogany configuration settings are inherited in a logical fashion. The settings in the preferences dialog are the global default settings and can be overridden on a per-folder basis. The top level folders in the tree use by default the same global options but you may also edit each folders options via "Folder|Properties..." menu item. Subfolders inherit from their parent folders and, again, you can change their options independently.
To make visualizing this mechanism easier, the names of the options with non
default values are highlighted in the options dialog. Those whose values are
set at the level of the folder currently being edited are shown in bright
blue, while those which inherit values from the parent folder are shown in
darker shade of blue. Of coourse, this behaviour in itself is customizable and
the colours may be changed (or disabled completely) in the ``Miscellaneous''
page of the options dialog ().
These options include the sizes and the positions of all windows, the texts of all prompts, the positions of splitters in the main program window and the other folder views as well as several other things. These options are special in that they do not appear in the options dialog and so can not be changed directly - instead Mahogany remembers them each time it is shut down, so when it is reopened it will be in exactly the same state as during the last run. Try to play with it: adjust the sizes of the main program window and the splitters in it as you like, exit Mahogany and restart it (this is for testing only, of course, you do not need to do it each time!) - you should see that the window reappears on the same position (although this might not work under some window managers), has the same size and is split in the same manner.
All other options except those mentioned in the previous subsection can be changed from the program options dialog. This dialog has several pages which are described in more details below:
Here several important settings are configured, so it is advised (as
the program itself will tell you when it is run for the first time)
to set them up before starting using Mahogany. These include your
personal identity settings - see also your preferred mail and news
servers which is configured from the network page ().
This page allows you to configure the network-related settings. Please notice that the four server names (for POP3, IMAP4, SMTP and NNTP) are only the default values and that Mahogany can use as many different servers (in particular, POP3 and NNTP) as you wish - for this, it is just enough to change the server name when creating a new folder from the default value specified here.
This page looks slightly differently in the global preferences dialog and in the folder properties one as some of the settings here must be the same for all folders while the others can only be set for a specific folder. First here is the list of the settings which appear in the global dialog:
On this page you may configure different settings which control the behaviour of the message composer (it is also used when replying or forwarding mail messages, not only for composing the new ones).
(This page is only present if you have a Python-enabled version of Mahogany)
Callbacks are python functions that can be called from different parts
of Mahogany's code. See the section for more information on
this.
Mahogany may automatically remember all addresses from all e-mail
messages you receive (actually, only those which you read). This is
called address autocollection and, as almost any other feature
of Mahogany can be turned on and off as desired. In this page you
may choose whether you want to use this feature at all (it is on by
default) and, if so, where should be the autocollected addresses be
put and other settings. See the Addressbook section ()
for more information on Mahogany's built-in addressbook.
In addition to its own built-in addressbook format, Mahogany also
supports the addressbook files of the BBDB addressbook used with Emacs
(see ). Some settings can be set here which apply only
to the BBDB addressbook support:
On this page you can customise which external helper applications Mahogany uses for different action that it does not perform itself.
All options which don't fit in any other pages are collected here.
This is especially useful when Mahogany is configured as your default mail client as otherwise another copy of it would have to be opened each time when you start writing a new message.
Mahogany can automatically save a subset of its configuration settings in a mailbox at program exit and automatically retrieve that information the next time it is started up. This option becomes useful if you are using the program from different systems, e.g. if sometimes from the office and some other times from home over a dialup link. In this case, you can save some settings in a special IMAP folder and tell the program to use this for some of the settings. Like that, you can share the program settings no matter from where you run Mahogany and you do not need to manually adjust both configurations.
To use this option, first create a folder on an IMAP server. Do not use a POP3 server, as the program cannot store information via POP3, IMAP is required for this to work. Then, activate the ``Sync options with remote server'' setting and choose which settings you wish to share. Currently supported are:
The dates of messages for the list of headers can be displayed in a format of your choice. The same format is used for inserting the current date in templates when writing messages. The format of the date is controlled by a list of format specifiers (as accepted by the strftime() function in the c-library). Most of the available format specifiers are available via a little popup menu which appears if you press the right-mouse button in the input field.
If you tick this box, all times will be displayed in Greenwich Mean Time (= Universal Standard Time) rather than local time. If not checked, all dates and times will be displayed in your own timezone. Note that the time and date displayed is not the local time in the sender's timezone but the time it was in your local timezone when the message was sent.
Here you can choose the criteria for sorting mailfolder listings. If you want to use message score as a sort criterium, you need to have a plugin module loaded which provides the ``Scoring'' interface. At time of writing no such plugin is available, it will appear soon, though.
If you tick this box, all messages will be threaded, i.e. sorted in hierarchical orders, with replies following earlier messages in the same discussion thread.
The effect of this option feels a bit strange at first and you might not like it. If selected, the messages will be re-sorted each time the status of a message changes. If you sort messages by message status and delete a message, it will immediately drop to the bottom of the list. Useful to always maintain a strict sorting order, but can be confusing.
Mahogany can load plugin modules at runtime to extend its functionality. Currently we are working on plugins to supply PGP/GPG encryption support and a scoring engine for sorting mailfolder listings. A plugin to use IBM's ViaVoice will be started work on as soon as the Debian/Linux ``Potato'' release becomes stable.
Generally, if you want to write an extension for Mahogany without using Python (which we hope to turn into a plugin, too, soon), you can do that very easily by writing it as a plugin module. Get in touch with the developers and we will show you how to do so.
This dialog allows you to decide which plugins get loaded at program start. At present, modules don't get loaded/unloaded at runtime, so you need to restart Mahogany for these options to take effect. On the top left you see a list of all modules that Mahogany has found in either the global modules directory or in your local directory ($HOME/.M/modules/). The window below shows some information about the module currently selected in the list, such as the name, author, a description of what it does and the name of the interface it provides. The interface would e.g. be ``Scoring'' for the plugin providing the functionality for scoring messages and is used by the program to find the right plugin for a given operation.
Any changes to the plugin module settings will only take effect after you re-started Mahogany!
Mahogany has a built-in address book system with flexible support
for different addressbook formats. It can be easily expanded to handle
other programs' file formats and at present supports three formats -
it's own ADB format (), (X)Emacs' BBDB (
) address
book format, and simple one address per line file (
).
Generally the address books are ordered hierarchically,
with the possibility to order entries in groups and sub-groups in
a tree-like fashion. Alias expansion is configurable and also handles
group names, to expand to the full list of email addresses within
that given group.
This is Mahogany's own address book format, offering you the maximum set of functionality supported by the address book editor. It offers hierarchical grouping of address entries and it also the default address book format used by the address auto-collection mechanisms, which uses different groups for address entries collected from different mail folders.
To edit the address book, open the address book editor. If the book is already present in the address book tree on the left side of the window, you may expand it (and any subgroups it might have) and start editing immediately. If not, you must first add it to the tree by choosing ``New..'' from the ``Book'' submenu or using the corresponding toolbar button.
Generally speaking, there are several ways to perform the same action in the address book editor:
To quickly move in the address book tree you may use either the ``Find'' or ``Go to'' dialogs (both available in the ``Find'' menu). The first dialog allows you to find the entry by its contents while the second one allows you to quickly go to the entry (in thecurrent address book only) if you know its nickname. In the ``Find'' dialog you have several options to configure the search: it may be either case sensitive or not (should ``mike'' match ``Mike''?) and try to find only the whole string or just the substring of it (should ``mik'' match ``Mike''?). You may also choose among which fields should the search be done. You may choose as many fields as you like (possibly all of them) but you must choose at least one.
After you used the ``Find'' dialog once, you may choose the ``Find next'' menu item to go to the next address book entry matching your search criterium (notice that a message in the status bar will notify you about how many matches, if any, were found). Keep hitting ``Find next'' until the search wraps to the beginning (again, watch the status line for the message) or until you find the entry you're looking for.
You may import your existing address book file by choosing the ``Import book...''entry from the ``Book'' menu - this will open the address book import dialog proposing you to select the
Mahogany supports reading and writing of BBDB address book files. BBDB is the Big Brother DataBase used with the Emacs family of editors. If you have an existing address book file, usually called .bbdb, you can load it into Mahogany and use it. This is especially useful if you have an existing file with auto-collected email addresses that you want to continue to use.
The BBDB address book format supports different fields than Mahogany's native database. When reading a BBDB file, Mahogany will only read the first two addresses and telephone numbers and assign them to the ``Home'' and ``Work'' addresses and phone numbers. All additional addresses and phone numbers, the AKA list and the comments will get lost. Mahogany will only save the information displayed in the address editor window. Currently saving of phone numbers to BBDB files is unsupported as it uses a different format from Mahogany. Therefore, reading a BBDB file and saving it back to disk may lead to a loss of information!
This is probably the simplest possible address book format. It is useful for integration with external programs and scripts. Addresses are stored without name and angle brackets. Mahogany doesn't attempt to lock the file, so care must be taken when writing to it from both Mahogany and external program.
Mahogany does currently support reading of Palm Addressbooks (referring to a ``Palm'' we mean the handheld organizer Palm Pilot running PalmOS). For being able to do that it is required to include the PalmOS-Module (see below). The support of Palm Addressbooks is not yet fully implemented, as so far it is only possible to download the addresses from the Palm and to display them. Changing and uploading changed/new addresses to the Palm is something we plan to add in the next release.
To display the Palm addressbook, create a new addressbook of type ``PalmOS''. You will be asked to put your Palm into the cradle and to push the HotSync-button. After the download the addressbook is accessible in read-only mode. Restarting Mahogany requires to download the addressbook again.
Mahogany has an embedded Python interpreter, if compiled with Python support enabled (check if Python appears in the ``Extra features'' list in the "Help|About..." screen if you are unsure about this). Python is an object-oriented script language which can be used to write scripts to be executed by Mahogany or even to extend Mahogany's functionality. Python scripts have full access to all internal Mahogany data structures and objects.
A number of user definable callback functions are available. Scripts
have access to most objects living in Mahogany. Scripting can be disabled
in the Preferences dialog (see ).
Currently the scripting support is quite basic. If you are interested in writing scripts and need additional callbacks or support for them within Mahogany, please get in touch with the developers who will be happy to add it.
At startup, Mahogany will load a file called Minit.py and call the Init() function defined in there, without any arguments.
It is possible to write filter tests and actions in Python. The test function should return an integer which determines whether the test passed (non zero) or not (zero). Both test and action functions receive as their single parameter the Message object which corresponds to the message currently being filtered.
Please have a look at spam.py example included in Mahogany distribution (in Python directory under Windows and in /usr/share/mahogany/scripts under Unix) to see a real life example of using Python for writing non trivial filters.
There are a number of callbacks available which will be called from different places within Mahogany. These are defined in the header file Mcallbacks.h. There is no documentation for these callbacks yet, but don't hesitate to ask us if you need more information about this. All of these callbacks are called with at least one arguments which is a pointer to the object from which it was called. E.g. for FolderOpenHook, this would be a MailFolder object.
The callback return value is usually a boolean and indicates whether Mahogany
should proceed normally () or cancel the operation (
).
To avoid repeatedly typing in the name of the module (MailFolder in this case), it can be imported into the global namespace with ``from MailFolder import *''. By default modules are not imported into the global namespace and must be explicitly named.
0 8 1 0 0 0 00 8 1 0 0 0 0Callback Name | Object Type | Additional Arguments/Types | Return Value | Documentation |
FolderOpenHook | MailFolder | void | Called after a folder has been opened. | |
FolderUpdateHook | MailFolder | void | Called after a folder has been updated. | |
FolderSetMessageFlag | MailFolder | (long) index of message | 1 if changing flags is ok,0 otherwise | Called before changing flags for a message. |
(string)name of flag | ||||
FolderClearMessageFlag | MailFolder | (long) index of message | 1 if changing flags is ok,0 otherwise | Called before changing flags for a message. |
(string) name of flag | ||||
FolderExpungeHook | MailFolder | 1 to expunge, 0 to abort | Called before expunging messages. | |
FolderNewMailHook | MailFolder | 1 to suppress default message, 0 else | Called when new mail arrived in folder. | |
GlobalNewMailHook | mApplication | (string) sender of mail | 1 to suppress default message, 0 else | Called when new mail arrived anywhere. |
(string) subject of mail |
Python has access to Mahogany's internal class hierarchy. At present we supply interface definitions and Python modules for only a small number of classes, however if there is need for more classes being supported, we can easily extend the list - please ask us if you want more support!
Some automatically generated documentation of the Python interface to Mahogany classes can be found in the doc/Python directory. Documentation about all classes, including those not available to Python, can be found in the doc/classes directory.
Starting with release 0.5, Mahogany allows the use of plugins (modules). This allows for an easy and comfortable way to enlarge Mahogany's functionality. These modules can be loaded at runtime and do not need to be part of the main executable.
This module provides a filtering language for Mahogany. It allows you to have Mahogany look at different message properties, such as message contents, size or header lines and execute arbitrary action on them. The most common use would be to sort mails from different mailing lists in corresponding mailfolders, to reduce the number of messages in your main incoming mailbox. Filters can be specified in three possible ways:
This dialog allows you to define any number of filter rules available
to Mahogany. In a seaparate dialog () you
can then pick any rule from the list and assign it to a folder. As
you can have different sets of rules for each folder and might want
to share rules for some folders, this dialog simply sets up rules
and you can later specify for which folders to use them. When editing
or adding a new filter rule, you will get to the following dialog:
This dialog allows you to set up or edit an individual filtering rule, it contains of the following components:
You can use several condition and connect them via logical AND and OR, optionally negating them by ticking the [Not] box. The following conditions can be tested for at present:
This dialog allows you to assign filter rules to a folder. You can
pick them from the set of existing filter rules (set up via the Filters
Dialog ()) and change the order of the rules.
The listbox on the left lists the existing filtering rules for the
currently selected folder in the order in which they are executed.
You can use the buttons to change the order or rules. You can also
activate/deactivate rules by clicking on the litte checkbox ([X]
or [ ]) next to their name.
If you want to apply rules to all incoming messages and are collecting mail from different servers, simply apply the rules to the ``New Mail'' folder if you have one, alternatively you can set up rules for individual servers or INBOX.
When 3Com released its first PalmPilots several years ago, many people did not believe in a success. But they were proven wrong, the Palm Pilot (or short: Palm) is today the most used handheld organizer.
For all the people possessing one of those little helpers, the PalmOS Module allows (or will allow) for an easy integration of the Palm's data in Mahogany. In future releases there will be full support for addressbook synching, schedules etc. Currently you can only view the Palm's addressbook (see above) and use Mahogany as your Palm desktop software.
As there is not really a common Palm desktop in the Unix/Linux environment (not like under MS Windows), we thought it a nice idea to include the desktop into Mahogany. Therefore Mahogany does allow to
There is an additional function not mentioned yet, labelled ``Synchronize''. Via the configuration dialog you can specify what should happen during synchronization - starting with mail exchange, backups and automatic installations. Read the following section about the configuration dialog to get see how you can customize your PalmOS-Module.
You can configure the PalmOS module via the Plugin menu in a lot of ways. Let's go through every single item in the configuration dialog which you can access using the Plugin-Menu:
There is the ``general'' approach to get the Palm databases on your computer and the more selective one. For the first one, just use the ``Synchronize'' menu point in the plugin menu. Depending on what you have enabled in the configuration dialog (see above), different actions will be taken (backup, mail exchange, ...).
If you only want to update your backup or to install a file or to restore your Palm's contents, you can access these functions individually by using the corresponding menu points in the plugin menu.
Before asking for the help on our mailing lists, please try to see if you cannot fix, or, at least, understand the reasons of, the problem yourself. It is difficult to list everything which could go wrong here but here are some basic recommendations:
Mahogany has a home on the world wide web where you can get up to date information about development and the last releases. Come and visit us at the Mahogany Homepage
Several mailing lists exist to contact the developers, to receive updates of new releases and to exchange information and experiences with other users. Please visit the Mahogany Project Pagefor more information and to join the lists.
If you want to help further development of Mahogany, please go to the same place and you will find all the information you need about how to contribute or how to contact us.
Run ./configure; make; make doc; make install.
Some quick notes about common compilation problems can be found in
the FAQ, in section .
This section contains assorted tips about how you can make Mahogany run faster.
Unix users only: Mahogany accesses the file ~/.M/CONFIG which stores all program options on startup. If this file is located on a slow partition such as a network disk (NFS), the startup time can be reduced just by moving it elsewhere and creating a link to it from ~/.M directory.
You can choose to not open any folders at startup (``Folders'' page of the options dialog) if doing this takes too long in your case. Also, remember to close the address book editor window if you don't want it to be reopened the next time you run Mahogany.
When using a remote server, especially over a slow link (such as a modem), it may be undesirable to automatically retrieve all messages from the server. Mahogany provides several options to help you with limiting the amount of data transferred.
First, you should probably disable the ``Open folder at single click'' and ``Preview message when selected'' options from the ``Message View'' and ``Miscellaneous'' pages of the options dialog to avoid accidentally open a folder or a message.
Second, there are several useful settings in the ``Folders'' page. Note that they can be set for each folder separately so you can only choose to change the default values for some slow servers but keep the original values for all the other ones. These options allow you to specify a threshold for message size: before downloading a message of size bigger than the specified (in Kb), you will be asked for the confirmation.
Being a brand new program, this section is currently pretty empty. However, we will constantly update this chapter with questions received on the mailing lists.
I'm a linux user (redhat) who just found Mahogany and really likes it, but I have a problem, I can't get all the widgets to work, the pictures on the buttons and the ones before the mailboxes all appear as an questionmark?
It depends how you installed it. If the icon with the question mark appears, it means that Mahogany didn't find its installation directory with the icons. If you installed the linux version from the .tar.gz with the binary, it should go into /usr/local or a similar place and you should have the icons in /usr/local/share/M/icons. If they are not there, Mahogany cannot find them. If you have installed it in a different location, Mahogany should ask you for the installation ("global Mahogany directory") when you start it for the first time.
If you have compiled it yourself, make sure you do a "make install" or "make install_all" (of which parts might fail, depending on your setup), to install everything in the right place. If you just grabbed the binary of the daily snapshot, you need to have a working Mahogany installation as well or it won't get the icons. You do not need any additional library, Mahogany handles xpm files internally.
The distribution files for Solaris and some of the other ones are in compressed tar format, having the ending .tar.gz . To unpack them you need gzip and tar. Change to the directory where you want to install Mahogany, e.g to /usr or /opt or /usr/local and issue the following command:
gzip -dc < thedistributionfile | tar xvof -Where thedistributionfile is the complete path to the file you downloaded. You will need to have proper write access to the directory where you install it and tar should show you a list of all files being installed as it unpacks them.
A common problem with compiling wxGTK and Mahogany is, that you need to follow the instructions in Mahogany's README file and use the configure script to set them up as explained. If you use different arguments for configure than those shown in README, things will not work! Also, before running configure again, remove any *.cache and *status files in the working directory or configure will re-use some old settings.
Also, as we are omitting some unused subdirectories from the wxGTK source, to save you download time, you may need to run ``make -k'' rather than just ``make'' to get it to ignore some errors caused by this. On non-Linux/GNU systems, you need to use the GNU make utility, i.e. ``gmake'' rather than the default ``make''.
The following steps should identify and solve the problem:
I went to the "Miscellaneous" tab in preferences menu and made sure the pathnames of libcrypto and libssl where correct. I enabled SSL in the access tab of my mail folder preferences. However, when I try to open that folder, it fails and the log window talks about being unable to load libssl.
Under Linux, this is due to a combination of factors, fixing one of them is enough to fix the problem. Versions of libssl.so older than 0.9.6 require libcrypto to be explicitly loaded beforehand. Updating to version 0.9.6 or newer fixes the problem. Versions of libwx_gtk older than or equal to 2.2.0 load shared libraries in such a way that, even though M loads libcrypto, libssl still fails to load. Upgrading libwx_gtk to a later version will fix the problem. Finally, if everything else fails, starting M with the command: ``LD_PRELOAD=/usr/lib/libcrypto.so M'' will fix the problem as well. If the second solution is used, the pathname of libcrypto.so must be set properly. Otherwise it is better to leave it blank.
When I set up Mahogany or select the preferences dialog, its contents do not appear. Sometimes I cannot enter anything in the fields.
wxGTK has a problem with constraint handling which can cause this dialog to sometimes get into an endless loop trying to do the layout. On most windowmanagers it helps if you resize the dialog a little and it will appear correctly. This seems to depend on the platform and window manager. Also, wxGTK does not seem to work correctly with OpenLook which does not allow you to enter anything.
Sometimes there may be some dialog window opened behind Mahogany window or on another desktop. Please check this (with Alt-Tab) if you think Mahogany got stuck.
I use fetchmail and procmail to deliver my mail (Redhat Linux). I'm reading mail with Netscape right now and I want to move to M. I cannot for the life of me get M to open my mail when it loads. I have to open them manually. Can someone please help me to get M to open all of my Linux Folders at startup.
You should be able to right-click on the folder treecontrol on the left of the main screen and "Create a new folder". Make it of type "file" and specify the path to the the folder file as the filename. Your normal mailspool /var/spool/mail/username is available under the name INBOX anyway, but I guess you have fetchmail/procmail deliver your mail to some other place.
Mahogany supports alias expansion for individual entries and for groups. There are two ways in which you can expand an alias to a group of addresses:
It is not immediately apparent how to set up my POP3 server under 0.23a , can someone give me a hand, please? It appears there is no section in the initial configuration utility for this.
Mahogany allows you to have as many folders or mail accounts as you like. That's why it doesn't ask you at the beginning. To add a POP account:
Follow the rules for setting up POP3 access but set the
folder type to be ``IMAP folder''. Then enter the name of your
IMAP server, your username and password (or leave it empty to be asked
later) for that server and, optionally, the path to the folder on
the IMAP server. You can leave the path empty, and it will use the
default folder (usually INBOX).
If you want to access many IMAP folders on the same server, or a directory there, you can create foldertree entries representing the IMAP server itself (i.e. the top-level directory on it) or a directory on the IMAP server. For these, if not using the Wizard dialog, make sure that the folder properties dialog has the ``is directory'' checkbox ticked, which tells Mahogany that it is not a mailbox file to open, but a directory which can be browsed for entries via the popup menu.
Can I access multiple different POP3 or IMAP accounts?
Yes, Mahogany allows you to have any number of different folders configured, and you can choose different account type ("Folder Type" setting in "Access" page when creating a folder) for them. Just right-click on the folder tree control and choose the ``Create Folder...'' option from the popup-menu. You can then switch between the different folders by selecting them (usually with a double-click on the tree control) for display in the main window, or, by selecting ``Open'' from the popup-menu which will open the folders in their own individual windows.
You can also select the ``Collect all mail from this folder'' option when creating the entries for them (or later, via the ``Preferences'' popup-menu option) to let Mahogany automatically check these accounts for new mail and collect it from there.
Does Mahogany allow me to send email as different people? That is, if I monitor two IMAP or POP servers, one for my work email, and one for my home email, can I reply to emails and specify it to use my home or work email address as the sender?
Yes, you can set almost *all* options on a per-folder basis, including your name or return address, even outgoing SMTP servers to make it perfect. To have full access to all these configuration options in the folder properties dialog, you must first set your user level to ``advanced'' in the main configuration dialog, otherwise only a small subset of configuration options is available. You can also create global identities which are available in all folders.
Very simple question: can I run Mahogany on a unix system as the superuser (root)?
Not directly. There are two problems with it:
You can forward your email to another user, say ``user1'', by creating a /root/.forward file containing that user's name. Then, run Mahogany through the ``su'' command: ``su user1 -c mahogany''. This will work just fine. If you get an error message about it being unable to access your X11 display, do a ``xhost localhost'' before, which will allow all local users to access your display. All this is not very safe from a security point of view if you don't trust your local machine, but perfectly fine for standalone or dialup boxes.
Update: Mahogany now runs as "root".
Under Unix: simply set and export your LANG environment variable like for any other program, too. Under Windows: the environment variable LANG will be recognised if it is set, but in addition Mahogany will automatically detect which language your system is set to use.
In addition, there is a -lang command line option, see
.
If I press 'D' or 'Del' or use the menu to delete messages, they get marked as deleted but never disappear. How can I delete them?
Simple, press '#' or 'x' or select Message/Expunge from the menu. Mahogany will also ask you if you want to expunge them when closing the folder. If you use the Trash folder, this only applies to that one as all other folders will move messages straight to Trash instead of marking them deleted.
Do "Forward with template" and create a new template containing $quote822 - this will forward the entire message. You can also change the default forward template to do it.
Unfortunately there is no GUI support for doing it yet. You may vote for the bug 404 or subscribe to it if you want to be notified when this is implemented.
But in the meanwhile you can do it manually relatively simply. Under Unix you
will need to edit the configuration file ($HOME/.M/config by default)
and under Windows you need to directly modify the registry entries (see
). In any case the program shouldn't run when you are
doing this modification.
Here is what you should do: just add ``Index=N'' entry in the folder profile section of the config file. I.e. if you add the marked lines:
[IMAP/Inbox] Index=0 # added manually ... [IMAP/Mahogany] Index=1 # added manually ... [IMAP/Junk] Index=100 # added manually
then Inbox and Mahogany will appear first and Junk last in the tree.
Under Windows you need to add the registry values of type DWORD using
the registry editor. For example, the value for Junk folder should be added
under HKCUSoftware
Mahogany-Team
M
Profiles
IMAP
Junk
key.
Typical POP3 server: normally, the new mail is downloaded from the POP3 folders locally so go to the ``New Mail'' page in folder properties and select ``Collect new mail from this folder''. This will move all new mail from the POP3 server to the ``New Mail'' folder. If you want to copy it instead (leave messages on server) just check the ``Leave mail in this folder'' checkbox as well.
Mahogany tries to preserve some sanity by disabling "Create new folder" in the popup menu when you select a folder of a non hierarchical format (such as MBX) but you can still circumvent this by doing "Folder|Create..." and selecting the folder you want as the parent.
You can open the message in the Sent Mail folder and do "Message|Edit in composer". It is sort of like "replying to yourself" but the to/from fields remain the same.