Skip to content

This project provides a library and tool set to access email through IMAP in the Squeak/Smalltalk environment. (SWT22-13)

License

Notifications You must be signed in to change notification settings

hpi-swa-teaching/IMAPClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMAPClient Coverage Status

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.

Installation

If you want to participate in development, have a look at the Development section below

  1. Get Squeak 5.2 or later
  2. Load Metacello
  3. Load the Morphic Testing Framework with:
Metacello new
	baseline: 'MorphicTestingFramework';
	repository: 'github://hpi-swa-teaching/Morphic-Testing-Framework:master/packages';
	load.
  1. 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.

Open

You can open the tool with the command ICFolderDialog new or using a Menu Entry.

Features

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

Usage

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

Configuration

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.

Security

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.

Development

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.

Known Problems

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!

Documentation

Have a look at the GitHub Project Wiki to find more insights into the project.

History

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

About

This project provides a library and tool set to access email through IMAP in the Squeak/Smalltalk environment. (SWT22-13)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published