[Kde-pim] Akonadi outbox & dispatcher agent [tentative design]

Volker Krause vkrause at kde.org
Sun May 3 10:34:45 BST 2009


On Sunday 03 May 2009 00:35:37 Constantin Berzan wrote:
> Design:
> * The outbox and send-mail folders will be maildirs on the local machine
> (e.g. in ~/.local/share/mail/{outbox,sent-mail}).  Does it make sense to
> have two separate resources (outbox and sent-mail), or a single resource
> managing both these directories?

The outbox does not necessarily need to have a "physical" representation in 
form of a maildir. As it contains only temporary data anyway, it could just 
as well only exist in Akonadi (that is currently not yet possible, as Akonadi 
enforces a resource ownership for every collection, but that will eventually 
change).

> * Applications can put messages in the outbox collection.  If this is done
> via Akonadi, then the items will already have a send_with_transport
> attribute.  If not (e.g. a plain file is created in that maildir), then
> should the dispatcher ask the user for which transport to use?

Mailtransport has a default transport, which could be used in this case.

> * The dispatcher agent will monitor the outbox collection, and when it
> finds a new message there it:
> - passes it to mailtransport (see below)
> - when/if sending has succeeded, moves the message to the sent-mail
> collection.  If the message contains a special
> after_sending_move_to_collection attribute, move it to that collection
> instead of sent-mail.  (This last bit is useful for things like
> keep-replies-in- current-dir).
> * mailtransport needs a way to find all the resources (like groupware) that
> can send mail.  Resources could provide dbus methods like canSendMail() and
> sendMail(msgID), and mailtransport can query each of them and if it
> canSendMail then put it into the combo box.  When asked to send a message
> using one of these transports, mailtransport simply calls the appropriate
> method for the appropriate resource, passing it the ID of the message in
> the outbox collection.

There is also a capabilities field for resources which can be queried via 
Akonadi::AgentType. That could be used for discovery as well.

The D-Bus interface would also needs a way to report success/failure and 
possibly status information.

> * A LocalFolders class takes care of creating the outbox and sent-mail
> collections for the first time, and can be used later to access these
> collections.  It will also have an Inbox folder for POP3, but that is
> unrelated to this project.  The class will reside in
> kdepimlibs/akonadi/kmime unless someone suggests a better location (perhaps
> in kdepim/akonadi/resources somewhere?)
>
>
> That's it.  I'm sure plenty of issues will show up at coding time, but if
> you can foresee some now, comments are appreciated.

regards
Volker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20090503/046571a9/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list