History log of /haiku/headers/os/mail/MailSettings.h
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.


# 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.


# 4ec6c3a0 02-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Merge patch by plfiorini :

Some changes to the API for notifications.
* Don't go through be_roster to send a notification, but use Notification->Send() instead.
* Rename App to Group to make the purpose clearer

And some changes to the notification code itself:
* Use the Notification class as the way to convey informations about a notification. Allows easier extension of this class
* Code cleanup
* Use of the layout kit for the notify window

Unfortunately, the latter part clashes quite a bit with the changes I already did to the notification window, so it's now quite broken. Working on that next, but I wanted to separate that work from the patch ...


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


# 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


# 7ab6cb9a 19-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Copy sent mails to /boot/home/mail/sent. Hope that makes more clear if a mail should be send (in out folder) or already has be sent.



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


# 2aef2725 18-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Change Path() to GetPath(), and made it accept a reference instead of
a pointer. Style changes.


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


# 2d05ca4e 18-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Actually return B_NO_MEMORY in case of error (was a regression introduced
in r38247.
Small style fixes (more to come)


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


# d3485a26 18-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed some members to fit our guidelines
(and to make the code more readable)


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


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

Forgot some files in the MDR import.


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


# 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.


# 4ec6c3a042bbc8e2e94b2ccd19c1e9289232d1e4 02-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Merge patch by plfiorini :

Some changes to the API for notifications.
* Don't go through be_roster to send a notification, but use Notification->Send() instead.
* Rename App to Group to make the purpose clearer

And some changes to the notification code itself:
* Use the Notification class as the way to convey informations about a notification. Allows easier extension of this class
* Code cleanup
* Use of the layout kit for the notify window

Unfortunately, the latter part clashes quite a bit with the changes I already did to the notification window, so it's now quite broken. Working on that next, but I wanted to separate that work from the patch ...


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


# 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


# 7ab6cb9ac5c3420b3b51c92b8036c459478cc2de 19-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Copy sent mails to /boot/home/mail/sent. Hope that makes more clear if a mail should be send (in out folder) or already has be sent.



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


# 2aef2725504d979c95f66cbd96a04c9127d8829d 18-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Change Path() to GetPath(), and made it accept a reference instead of
a pointer. Style changes.


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


# 2d05ca4e7a89921ba3417ec9e45bde8dfe94c682 18-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Actually return B_NO_MEMORY in case of error (was a regression introduced
in r38247.
Small style fixes (more to come)


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


# d3485a2648824b741dc9f9dfe486f985fdd09822 18-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed some members to fit our guidelines
(and to make the code more readable)


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


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

Forgot some files in the MDR import.


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