History log of /haiku/src/servers/mail/main.cpp
Revision Date Author Comments
# daf972c9 30-Oct-2012 Axel Dörfler <axeld@pinc-software.de>

Renamed MailDaemon{App|.cpp|.h} to MailDaemonApplication[.{cpp|h}].


# 1af4fa4b 08-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Major restructuring of the mail server:

Accounts are now stored in a separate file. Previously they where somehow magically assembled from the chain ids. Now its possible to remove a account temporary by removing the account file form the account folder.

Each account could have an inbound protocol, an outbound protocol and some filters.

Mails are now associated with an account and not with a chain. This required to replace the chain id attribute by an account attribute.

Replace BMailFilter and BMailChain by a less general approach. Basically the chain had a list of filters and call the ProcessMailMessage for each filter. This made it sometime difficult to understand what is going on, e.g. sometimes a filter used information gathered by another filters. The new MailProtocol and MailFilter classes are calling more dedicated hook functions, e.g. HeaderFetched or MessageReadyToSend.

As before all MailProtocol's (plus their filters) are running in their own thread.

Cleaned up the error and status window a bit. Abstracted the interface to these windows. Should be easy to write a BNotification api back-end now.

Parsing of mail headers is much faster now. Fetching the headers of a large mailbox takes ~min and not ~hour now! Initial checkout time is in the same order like Opera. The problem was the massive use of fgets in parse_header (mail_util.cpp) now the complete header is read in one go. Furthermore, only interesting fields are extracted.

Remove some unused files, BeOS relicts... Feel free to translate the mail server and remove the own language system (headers/private/mail/MDRLanguage.h).

Sorry for the remaining old (and new) coding style issues, sometime just ignore them, to many :(



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40397 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fda6d9ab 10-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

As suggested by Rene and Jerome, switch to BDirectory::Contains(),
which is way cleaner.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 784263e2 10-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed a bug that would have considered /boot/trashy_file be in /boot/trash.
Spotted by Rene, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39805 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e4538de 10-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Don't send a mail entry located in trash folder.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b7803478 15-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Possible work-around for #5899: if the index does not contain the correct
information, the mail is no longer sent.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 481e4488 15-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed a work-around for an older mail_daemon version that never made it
to Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33601 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f802f04a 15-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed BONE PPP support.
* Coding style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84e0703c 11-Aug-2009 Alexandre Deckner <alex@zappotek.com>

* Build fix
* More style fixes
* Automatic whitespace cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32274 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63d557f0 15-Jul-2009 Michael Lotz <mmlr@mlotz.ch>

Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a8ef589 30-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Build fixes for gcc 4 by Ilzu Siiteri. Small changes by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15256 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c91a5f9 05-Nov-2005 Alexander G.M. Smith <agmsmith@nowhere.fake>

Now compiles for both Haiku and R5 targets. Also bumped the version
number to 3.0.3, just in case we want to do a new release soon with
this slightly better working version.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cfbb3703 20-Nov-2004 shatty <shatty@nowhere.fake>

address compiler warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10084 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3a2f393 30-Oct-2004 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Fixed a bug that would cause queued messages stored in IMAP directories not to be sent if IMAP mail was checked before queued mail was sent. This the last known bug in MDR.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9665 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4a3b483 18-Oct-2004 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Made PPP state detection work on BONE. This was the last nonworking MDR feature after the import, so Haiku mail daemon builds should now be fully functional with or without SSL and with or without BONE. Yay.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7215ac8 20-Sep-2004 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Imported MDR. Some code still not entirely functional -- I haven't been able to figure out how to detect SSL, so IMAP and POP have it turned off. PPP auto-detect is also not functional at the moment. Other than that, it seems to work beautifully. Packaging will come later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# daf972c99c4a66baa0bc4df698334eda8f224a7d 30-Oct-2012 Axel Dörfler <axeld@pinc-software.de>

Renamed MailDaemon{App|.cpp|.h} to MailDaemonApplication[.{cpp|h}].


# 1af4fa4ba62ba7e49fc47d60a3a89083b6f51c6f 08-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Major restructuring of the mail server:

Accounts are now stored in a separate file. Previously they where somehow magically assembled from the chain ids. Now its possible to remove a account temporary by removing the account file form the account folder.

Each account could have an inbound protocol, an outbound protocol and some filters.

Mails are now associated with an account and not with a chain. This required to replace the chain id attribute by an account attribute.

Replace BMailFilter and BMailChain by a less general approach. Basically the chain had a list of filters and call the ProcessMailMessage for each filter. This made it sometime difficult to understand what is going on, e.g. sometimes a filter used information gathered by another filters. The new MailProtocol and MailFilter classes are calling more dedicated hook functions, e.g. HeaderFetched or MessageReadyToSend.

As before all MailProtocol's (plus their filters) are running in their own thread.

Cleaned up the error and status window a bit. Abstracted the interface to these windows. Should be easy to write a BNotification api back-end now.

Parsing of mail headers is much faster now. Fetching the headers of a large mailbox takes ~min and not ~hour now! Initial checkout time is in the same order like Opera. The problem was the massive use of fgets in parse_header (mail_util.cpp) now the complete header is read in one go. Furthermore, only interesting fields are extracted.

Remove some unused files, BeOS relicts... Feel free to translate the mail server and remove the own language system (headers/private/mail/MDRLanguage.h).

Sorry for the remaining old (and new) coding style issues, sometime just ignore them, to many :(



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40397 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fda6d9ab6f89cadee02edfe70cb577c62cc981f9 10-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

As suggested by Rene and Jerome, switch to BDirectory::Contains(),
which is way cleaner.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 784263e28ac2f0843da8fb5ab6d1cd7a9381d5a8 10-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed a bug that would have considered /boot/trashy_file be in /boot/trash.
Spotted by Rene, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39805 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e4538de6f45dfcf4561535d6e8473461461877b 10-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Don't send a mail entry located in trash folder.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b78034782a3ce52d5802f54417b97b224e799147 15-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Possible work-around for #5899: if the index does not contain the correct
information, the mail is no longer sent.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 481e448812c4d5f4d292e3b8d00d33838977ee85 15-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed a work-around for an older mail_daemon version that never made it
to Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33601 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f802f04acf5fc26d7812935def3c7f7448054dca 15-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed BONE PPP support.
* Coding style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84e0703c8741f6cb5bc6194e591cd26f6509f18c 11-Aug-2009 Alexandre Deckner <alex@zappotek.com>

* Build fix
* More style fixes
* Automatic whitespace cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32274 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63d557f06f41c0aef30f8a0fcc5b8d2c47981b33 15-Jul-2009 Michael Lotz <mmlr@mlotz.ch>

Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a8ef5895955c74d5d8c4445ca9debcd231112d1 30-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Build fixes for gcc 4 by Ilzu Siiteri. Small changes by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15256 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c91a5f9d6fa488da6076d0cd379d75258d0aca1 05-Nov-2005 Alexander G.M. Smith <agmsmith@nowhere.fake>

Now compiles for both Haiku and R5 targets. Also bumped the version
number to 3.0.3, just in case we want to do a new release soon with
this slightly better working version.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cfbb37030e265f9e967d4eaff639fa385f82091f 20-Nov-2004 shatty <shatty@nowhere.fake>

address compiler warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10084 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3a2f3930fd7a4df138d0e6462ad19c3799e46a8 30-Oct-2004 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Fixed a bug that would cause queued messages stored in IMAP directories not to be sent if IMAP mail was checked before queued mail was sent. This the last known bug in MDR.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9665 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4a3b4837b732ac0c6bca40af2b850e73bb95e2e 18-Oct-2004 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Made PPP state detection work on BONE. This was the last nonworking MDR feature after the import, so Haiku mail daemon builds should now be fully functional with or without SSL and with or without BONE. Yay.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7215ac853ab5fda385dffd3e3dc0e1f74662ce9 20-Sep-2004 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Imported MDR. Some code still not entirely functional -- I haven't been able to figure out how to detect SSL, so IMAP and POP have it turned off. PPP auto-detect is also not functional at the moment. Other than that, it seems to work beautifully. Packaging will come later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9016 a95241bf-73f2-0310-859d-f6bbb57e9c96