as I am one of those guys who really, really like to have an email client in otter-browser, I may start a new thread discussing how the development can/may be done.
Please comment: Do you think that this is a good idea or not? Or how would you guys do that?
This is how I would do it:
I would split the email module into 3 parts:
1. The email sender module (the smtp module)
2. The email fetcher module (inculding a pop3 and an imap module)
3. The email indexer module (the module that is used to search/tag etc. and read the emails)
The separation into these three parts would make it possible to:
- develop the parts without many conflicts and by different developers.
- use existing mail storages by the indexer and test/use it (the mail-reader) even if (e.g.) no pop3 or imap module exists yet.
- more "easily" built an importer for (e.g.) the Opera m2 mail client storage and use the mail module while still using Opera Mail (or some other Email client) in the background.
1. The smtp module is probably the easiest part I think. There are probably several libs out there that may do the work of encoding for email, attachments etc., though I didn't use anyone of them.
Also: Nothing in here may break existing email storages so if a user wants to combine otter-mail with an other email client this should be fine (except for emails in the "sent" folder, which may not occur in the other mail client).
2. The pop3/imap module may be a bit more trickier as this cannot easily be combined with another (existing) mail client as both may then write to the same email storage and the indexing-process will not be syncronized.
3. There are already email indexer out there. I am currently testing "notmuch mail":
which seems to work quite well for this suppose!! I even could easily read the opera mail storage, index it and search it without many configurations (except for the folder, of course)! And: It seems to be really fast, and everything is based on tags (or "labels"), which is exactly what opera mail was built on! So mails are not saved in folders but are tagged with read/unread/inbox/darfts/attachments etc.
You could then let opera mail (or another email client) fetch your mail and search/read it through a new mail client (otter-mail in this case).
Tags/Labels (meaning the name of the tag/label) could probably be imported from Opera Mail, while the references to the mails probably couldn't, as this seems to be closed software (please correct me if you know how to read/parse an existing opera indexer-binary file).
What do you think about this? What are your ideas about how the email client could be developed? What are the minimal features one may have (or users may want to have) for a first user-test-realease?
I will probably keep on searching/testing some solutions that may help building the email client and maybe (if I find some time) build a prototype of such an email-client....
Any ideas about the email client subject would be appreciated!
I even could easily read the opera mail storage, index it and search it without many configurations (except for the folder, of course)!
It would be very nice if Otter could import Opera's mail, yes. When Otter started, it was able to import Opera's bookmarks. This was done right, and it would be nice to continue this way as far as possible.
In general, somebody should volunteer to program the module up. I don't know any programming myself and unfortunately it is not in my plans to learn programming, so I cannot volunteer for it.
Importing Mails from M2 (the Opera Mail client), should be easy as these are just textfiles containing the whole message (headerdata, mailtext etc.). In Opera like in many other mailclients one mail per file. So this is straight forward.
Of course and unfortunately, this doesn't mean that these mails are automatically assigned to the desired label!
Unless we get some support from a developer of the Opera Mail Team I guess you will have to reassign the mails to the labels/folders.
For the "saved searches" and the "attachment", "document" etc. labels/folders this is different though, as this being done automatically by the mail client and so, can be done in a different mail client, too.
The Label/Folder-Names (including the "saved search" folders) are known, as they are plain text files.
The real problem is, that we do not know which mails the user has manually put into which folder (meaning assigned to which label).
I am implementing e-mail client for Otter browser as bachelor thesis at university. There is repo with source code of my prototype: https://github.com/honza-c/simple-mail-client
Basic e-mail client will be done at least in my fork untill the Christmas, if not, I will be fired from school, because this is my last possible deadline... :D
My client is based on vmime library: https://www.vmime.org/. This library handles all the work with SMTP, POP3 and IMAP protocols.
My program is full of bugs and architecture is bad, but it somehow works. This is my first bigger programming project ever, I don't know how to do things right way, I'm happy for every piece of code I write that works. It won't mind me if changes in my fork of Otter won't be merged into the main project.
Maybe I would like to participate in Otter in the future, but I am inexperienced in C++ / Qt and in programming basically, and honestly, my routine nowadays when I am at work for 40 hours / week and when I learn C++ / Qt and develop e-mail client next 20 hours / week doesn't really fit me :)
The screenshots look excellent! :)
I totally agree. I looks quite nice, your simple mail client!
I'll try to find some time to test it. Maybe next week....
And of course, I wish you all the best for your studies and the thesis!