History log of /haiku/src/kits/mail/MailSettings.cpp
Revision Date Author Comments
# d8c02225 07-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

BMailAccountSettings: use BPathFinder.

* This allows to put add-ons in non-packaged folders, too.
* Also, Set{In|Out}boundAddOn() only ever looked in the system dir.


# 15c10562 02-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BMailSettings: removed debug message dump.


# 8705e1f6 22-May-2013 Axel Dörfler <axeld@pinc-software.de>

mail_daemon: cleanup, 30s auto check startup delay.

* Refactored new message retrieval a bit, so that the notification strings
aren't duplicated.
* The daemon now waits 30 seconds before doing the first mail check.


# ca3341c7 12-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Major mail protocol/filter settings rework.

* Instead of abusing BArchive::Archive() we now use a BMailSettingsView as
a base view for all filter/protocol settings that works with
BMailAddOnSettings.
* Cleanups in E-mail which is now completely layout friendly. But also still
crashes when changing the views.


# f90a3bbd 04-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Added support for letting user mail add-ons override system ones.

* The path will now be relativized before storing it.
* On load, the add-on will be tried to load from the user, then common
and finally system add-on directory.


# 1f87386b 04-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Now also loads mail settings from common.

* Also removed the superfluous and unused timeout argument from Save().


# 715bf3d1 26-Oct-2012 Axel Dörfler <axeld@pinc-software.de>

Work in progress of mail rework.

* Not everything compiles; all protocols, and inbound filters do, though.
* Renamed a few classes to give a better idea what they are for; prefixed
public classes with the 'B' prefix.
* Moved ProtocolConfigView's classes into the BPrivate namespace.
* Moved BMailFilter into its own file.
* Added BMailFilter::DescriptiveName(). This is now used by the RuleFilter
in order to give a description of what it's doing (ie. no more dozens of
"Rule filter" entries in the preferences).
* Removed no longer used MailAddon.h.
* Renamed Addon to AddOn where found, since that is more consistent with the
rest of the API.
* Merged the former MailProtocol with the former MailProtocolThread; the
differentiation between those two was pretty messy.
* All configuration views touched so far are now using the layout kit.
* The RuleFilter is currently broken functionality wise; I have not yet decided
how to solve the stuff it uses (TriggerFileMove() does not exist anymore,
for example).
* BMailAddOnSettings (formerly known as AddonSettings) now directly subclass
BMessage; there are no Settings() and EditSettings() method anymore. The
class uses a copy of itself to determine whether or not it has been changed.
* Lots of cleanup.


# e039afe8 29-Oct-2011 François Revol <revol@free.fr>

Define B_MAIL_DAEMON_SIGNATURE and use it instead of hardcoding the signature everywhere.


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


# 9d8f95fc 19-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* More cleanup.
* Fixed slightly incorrect copyright year, thanks Clemens :-)


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


# 21c22141 19-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed default_sent_directory(), and introduced
default_mail{_in|_out}_directory() methods in the BPrivate namespace.
* Used these methods in the inbound/outbound protocols.
* Moved WriteMessageFile() into the BPrivate namespace as well, and put its
prototype into a new header MailPrivate.h along with the new directory
getters.
* Removed the automatic copy to the sent directory again, and only have one
directory for incoming mail. Incidentally, this fixed #7509, although the
underlying filter restriction remains.
* Automatic whitespace cleanups, some style cleanups. Sorry for the mess.


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


# 08606d49 22-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add settings to enable and disable in and outgoing mail accounts.



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


# 495ecdfe 16-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Do not recreate the account file when saving the settings. This fix
alternating account names (once AccountName_1 the other time just
AccountName).
Sort accounts by creation time. This fix the order in mail
preferences.



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


# ac2d6758 13-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Store path instead of an entry_ref. Should fix part of #7364.



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


# 00413d51 10-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix default "check interval" and "show status window" values.



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


# 9967dfd9 21-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Extend MarkMailAsRead to take a flag not only a bool value. Write an additional MAIL:read attribute.
- Remove some hard coded paths.
- Catch failure of FindMessage correctly. Thanks Axel.



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


# 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


# 1e7a45fd 18-Aug-2010 Rene Gollent <anevilyak@gmail.com>

Fix build.



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


# 9a4b0253 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Better defaults: the status window should be visible on all workspaces.


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


# d81dcabe 25-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

FS gurus, please review.

- get_new_fd() now checks if we are dealing with attributes before deciding to
bail out on a locked vnode.
- Enabled locking in MailSettings again as it now works.



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


# 68d6c8f1 25-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Remove directory locking for Chain creation until BNode::Lock() is fixed.
- Creating 2 chains at the same time will result in problems now, but this is
something unlikelly to happen (although not impossible).
- Added TODOs related to this.
- MDR is usable again inside Haiku and you can actually send emails when
creating a mixed inbound/outbound account.



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


# ca13bd31 21-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* The Deskbar tray icon menu "Check Mail" and the status window "Check Now" button
are now only enabled if there are any inbound accounts.
* BMailSettings::StatusWindowFrame() now returns some useful defaults.
* Minor cleanup.
* The MDR kit needs some serious overhaul before it can be part of R1.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21493 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


# 15c1056242587294ef01a30fdb32518c842af881 02-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BMailSettings: removed debug message dump.


# 8705e1f6e7fcc9892785d1406b2d0c0e530d0e11 22-May-2013 Axel Dörfler <axeld@pinc-software.de>

mail_daemon: cleanup, 30s auto check startup delay.

* Refactored new message retrieval a bit, so that the notification strings
aren't duplicated.
* The daemon now waits 30 seconds before doing the first mail check.


# ca3341c7b430ae9c6a1e7ec22f9aa83d46910814 12-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Major mail protocol/filter settings rework.

* Instead of abusing BArchive::Archive() we now use a BMailSettingsView as
a base view for all filter/protocol settings that works with
BMailAddOnSettings.
* Cleanups in E-mail which is now completely layout friendly. But also still
crashes when changing the views.


# f90a3bbd67be2e5f3aa32afcbbeff7ce36dfe531 04-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Added support for letting user mail add-ons override system ones.

* The path will now be relativized before storing it.
* On load, the add-on will be tried to load from the user, then common
and finally system add-on directory.


# 1f87386b0ae4ba1a154db7f7a6b00cc54adbd654 04-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Now also loads mail settings from common.

* Also removed the superfluous and unused timeout argument from Save().


# 715bf3d17a81353ae5d1fa6867587cc0f5c32ce1 26-Oct-2012 Axel Dörfler <axeld@pinc-software.de>

Work in progress of mail rework.

* Not everything compiles; all protocols, and inbound filters do, though.
* Renamed a few classes to give a better idea what they are for; prefixed
public classes with the 'B' prefix.
* Moved ProtocolConfigView's classes into the BPrivate namespace.
* Moved BMailFilter into its own file.
* Added BMailFilter::DescriptiveName(). This is now used by the RuleFilter
in order to give a description of what it's doing (ie. no more dozens of
"Rule filter" entries in the preferences).
* Removed no longer used MailAddon.h.
* Renamed Addon to AddOn where found, since that is more consistent with the
rest of the API.
* Merged the former MailProtocol with the former MailProtocolThread; the
differentiation between those two was pretty messy.
* All configuration views touched so far are now using the layout kit.
* The RuleFilter is currently broken functionality wise; I have not yet decided
how to solve the stuff it uses (TriggerFileMove() does not exist anymore,
for example).
* BMailAddOnSettings (formerly known as AddonSettings) now directly subclass
BMessage; there are no Settings() and EditSettings() method anymore. The
class uses a copy of itself to determine whether or not it has been changed.
* Lots of cleanup.


# e039afe87e28d786408d3d9b4c802221481691b5 29-Oct-2011 François Revol <revol@free.fr>

Define B_MAIL_DAEMON_SIGNATURE and use it instead of hardcoding the signature everywhere.


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


# 9d8f95fcee971b6b1e82b4124f0cb91e005738f6 19-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* More cleanup.
* Fixed slightly incorrect copyright year, thanks Clemens :-)


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


# 21c22141b824642aa223699f976711e4b9f53cb4 19-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed default_sent_directory(), and introduced
default_mail{_in|_out}_directory() methods in the BPrivate namespace.
* Used these methods in the inbound/outbound protocols.
* Moved WriteMessageFile() into the BPrivate namespace as well, and put its
prototype into a new header MailPrivate.h along with the new directory
getters.
* Removed the automatic copy to the sent directory again, and only have one
directory for incoming mail. Incidentally, this fixed #7509, although the
underlying filter restriction remains.
* Automatic whitespace cleanups, some style cleanups. Sorry for the mess.


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


# 08606d49da9f64269e34f0ea28091a5737d4e2cc 22-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add settings to enable and disable in and outgoing mail accounts.



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


# 495ecdfea8aa1599071ce4c1dd8cdbdb518594c2 16-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Do not recreate the account file when saving the settings. This fix
alternating account names (once AccountName_1 the other time just
AccountName).
Sort accounts by creation time. This fix the order in mail
preferences.



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


# ac2d675877ee1d4522663bd2a4f6043211bc9fe9 13-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Store path instead of an entry_ref. Should fix part of #7364.



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


# 00413d511cbe9c11943e025a573183a273de343e 10-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix default "check interval" and "show status window" values.



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


# 9967dfd9243396f9bed5f7b357451cda8cd48f26 21-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Extend MarkMailAsRead to take a flag not only a bool value. Write an additional MAIL:read attribute.
- Remove some hard coded paths.
- Catch failure of FindMessage correctly. Thanks Axel.



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


# 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


# 1e7a45fd7a4d497a591efacde0706b9fa18f6dd9 18-Aug-2010 Rene Gollent <anevilyak@gmail.com>

Fix build.



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


# 9a4b02535e8215a5404299fe74ebc71dcb0de867 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Better defaults: the status window should be visible on all workspaces.


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


# d81dcabe8edda69c379e99c6917bd75f44dff1e9 25-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

FS gurus, please review.

- get_new_fd() now checks if we are dealing with attributes before deciding to
bail out on a locked vnode.
- Enabled locking in MailSettings again as it now works.



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


# 68d6c8f16906f066c4e8fae924910c0a3857b948 25-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Remove directory locking for Chain creation until BNode::Lock() is fixed.
- Creating 2 chains at the same time will result in problems now, but this is
something unlikelly to happen (although not impossible).
- Added TODOs related to this.
- MDR is usable again inside Haiku and you can actually send emails when
creating a mixed inbound/outbound account.



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


# ca13bd31a784e07f54384f3ef42839c78bf7ff94 21-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* The Deskbar tray icon menu "Check Mail" and the status window "Check Now" button
are now only enabled if there are any inbound accounts.
* BMailSettings::StatusWindowFrame() now returns some useful defaults.
* Minor cleanup.
* The MDR kit needs some serious overhaul before it can be part of R1.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21493 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