hpi-swa-teaching / IMAPClient

This project provides a library and tool set to access email through IMAP in the Squeak/Smalltalk environment. (SWT22-13)
MIT License
22 stars 3 forks source link
email imap smalltalk squeak

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

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