Welcome to our IMAP Client project. We are a team of 4th semester IT-Systems Engineering students and are happy to take over this project for the seventh iteration. This project is part of a lecture in Software Engineering techniques and will be contributing to our final grade, so we are giving it our best ;) As this is a student project, it will mostly be worked on during the summer terms. Therefore our time with this project is limited to the beginning of august.
In case of any questions, feel free to contact us.
If you want to participate in development, have a look at the Development section below
- Get Squeak 5.2 or later
- Load Metacello
- Load the Morphic Testing Framework with:
Metacello new
baseline: 'MorphicTestingFramework';
repository: 'github://hpi-swa-teaching/Morphic-Testing-Framework:master/packages';
load.
- Finally, load the package with the following command:
Metacello new
baseline: 'IMAPClient';
repository: 'github://hpi-swa-teaching/IMAPClient:develop/packages';
load.
If you encounter any dependency problems, click proceed.
5. Now you can setup a Menu Entry under "Apps" using ICFolderDialog install
.
You can open the tool with the command ICFolderDialog new
or using a Menu Entry.
-
Manage different accounts You can add an account by clicking the
+
button. You will then be prompted to enter the account information needed to establish a connection with the server. -
Fetch new mails from the server Mails are automatically fetched on the first login. If you wish to update and resynchronize with the server afterwards, click the update button. The title bar of the tool will show you the time of the last successful synchronization to help you decide if you want to update.
-
Delete & move mails A right click on any mail will show you your options. Deleting a mail automatically moves it to the trash folder. If you want to revert a deletion, you can simply navigate to the trash folder and move the email back to another folder. When you want to permanently delete emails, right click on the trash folder and choose expunge. This will dump your trash folder permanently.
-
Flag and read emails A right click on any mail will show you your options. You can flag an email for later use or mark it as seen if you do not want to be disturbed by it beeing highlighted anymore. Also you can mark already seen mails as unseen again.
-
See unseen mails immediately. All unseen mails will be highlighted and the number of unseen mails per folder can be seen next to the folder name.
-
Search Mails You can enter a search string into the search bar at the top. Right next to the search bar you can see how many search results you got for the current search.
-
Parse different encodings
-
Reflect server changes back to Client. If you're accessing your mails for a different device, and deleting/moving them, just press the update button in the Client, and every change should be correctly updated.
-
Offline mode All above features are also available while you are offline. Specifically, mails can be read, flagged and moved to other folders after they were downloaded on the first login. As soon as you are online again, you may resynchronize your account with the server by clicking on the update button and filling in your password.
-
Sort mails by different categories. By default all sortings are ascending. Clicking the button again will reverse the sorting order.
-
Addressbook. You can open the addressbook by clicking the button with the icon of a person. The adressbook holds all sender names and addresses of mails from any of the currently logged in accounts. You can also add your own contacts by clicking on the respective button. Finally, it is possible to sort contacts in ascending or descending order by both sender name and address.
Start the IMAP Client with ICFolderDialog new
. Add new Accounts with the +
Button. We tested the functionality with web.de and gmx.de Accounts. But other accounts should work fine.
The HPI OWA accounts are known to be relatively large, as calendar and contact meta information is also sent to our client as folder objects. Therefore it might not entirely load in the requested time of 5 seconds.
For HPI accounts use the following login info:
Server: owa.hpi.de
Port: 993
Username: firstname.lastname
Password: xxxxxxx
Use SSL: True
For web.de accounts use the following login info:
Server: imap.web.de
Port: 993
Username: username
Password: xxxxxxx
Use SSL: True
You can customize the number of mails, which are fetched if you press the Load older Mails
Button. The default is 10. Change ICFolder>>numbersOfHeadersToFetchAtLoadOlderMail
This will not regard the e-mails that are already persisted on your disk, so if you have some e-mails in a Maildir directory, all of them will be read no matter what you defined here.
You can access a setting for which folder should not be synced by the IMAPClient and hidden in the Overview as well as a setting for how many folders to show at once in the menu that pops up when you want to move a mail to another folder in the settings browser, acessed by clicking the cogwheel on the top left.
Your password isn't stored on disk, but will be visible to your Squeak environment. It is immediately deleted after login, so you will not be able to retrieve it afterwards, but be aware that we are no security experts and you might not want to test this with a sensitive account. After closing the IMAP-Client and reopening it, you are welcomed by a password prompt when you click the update button for the first time.
To take part in developing the IMAPClient, follow the steps of Installation. Instead of loading it with Meatcello however, clone the project via git and check out the latest commit. Before commiting something yourself, you should format your code with PoppyPrint. You can install it with the following command:
Metacello new baseline: 'PoppyPrint'; repository: 'github://hpi-swa-teaching/poppy-print/packages'; load
And use it to format one package with PPFormatter formatPackage: 'IMAPClient-Core'
.
This ensures consistent formatting across the whole project, enforcing the coding standard.
As this project has lived through many iterations, there are a couple of known issues that we could not resolve during the few months we spend with this project. If you encounter any problem while using our IMAP client, have a look at the Issues of this GitHub Project. Most of them are probably already known to us. In case your problem has not been reported yet, feel free to post a new issue and describe what you did to get the problem, what the unexpected behaviour was and what behaviour you would have expected. Thank you in advance for contributing to making this project better by reporting any problems that we are not yet aware of!
Have a look at the GitHub Project Wiki to find more insights into the project.
2016: Johannes Schneider, Maximilian Söchting, Julian Weise, Alexander Riese, Alexander Loeser
2017: Jonathan Sauder, Marcus Ding, Melvin Witte, Daniel Lindner
2018: Claudia Grabowski, Leonard Von Merzljak, Marius Walter, David Hennemann
2019: Paul Methfessel, Martin Taraz, Otto Kissig, Tim Garrels, Felix Rindt
2020: Henrik Guhl, Lorenz Woth, Niko Hastrich, Julia Joch
2021: Smilla Fox, Elena Gensch, Jan Groeneveld, Christian Helms, Lukas Rost, Johann Schulze Tast
2022: Fynn Kröger, Simon Weißmüller, Raban Gießler, Anton Neubauer, Johanna Schlimme, Hannes Spitz