220 likes | 545 Views
Java Email Client. Justin T. Griffin CST311 Dr. Narayanan. Original Goal: Pop/Imap Email Client Using SMTP To Send. POP3 is just a basic application layer mail protocol. It is rather limited in its abilities, and most suited for non-mobile mail accounts. Authorization | Transaction | Update
E N D
Java Email Client Justin T. Griffin CST311 Dr. Narayanan
Original Goal: Pop/Imap Email Client Using SMTP To Send • POP3 is just a basic application layer mail protocol. • It is rather limited in its abilities, and most suited for non-mobile mail accounts. • Authorization | Transaction | Update • Two responses: +OK –ERR • Most common commands: • Authorization Phase: user pass • Transaction Phase: list retr dele quit stat rset top • IMAP is another application layer mail protocol. • It is more functional than POP3, but significantly more complicated. • This can be seen in commands. • Folder hierarchy is maintained server-side, making it useful for mobile accounts.
Telnet POP3 Connection Oh SSL…You are my new archenemy. How I hate you so.
Telnet Imap Connection Google IT people must have a lot of time if they can quote Poe. The two commands used for demonstration here were: A001 CAPABILITY A002 logout
Class Descriptions • The GUI class ended up being poorly named, as it contains the code for the client GUI window, establishing the connections to the server, all the mail handling code, and the main function. • The MTModel class was not made by me, and organizes and provides functionality for the email table in the main client. • The Downloading Dialog is just a simple dialog that tells the user that mail is downloading. • The ConnectionGUI class is a window that displays information for entering server /authorization information and choosing the receiving protocol. Values are passed back to GUI. • EmailWindow is a separate GUI window for typing or viewing an email. • Was trying to implement the viewing and editing in the bottom of the main client instead of EmailWindow. Both are still in, but both have problems.
Originally Set Out Goals Success Failure 1) Can Send Email 2) Can Delete Email 3) Can View Email List 4) Can View Email
Issues I Encountered • SSL, SSL, SSL. The API I used had very poor documentation regarding SSL. Additionally, I have not tested with an email server not using SSL, as I did not think it was really realistic. • Very high chance that only reason sending and viewing do not work is to SSL. • Actually have two versions of the project. • Scrapped my original halfway in, leaned heavily on different simple open source ideas. Still have both. • Had to relearn swing, which was wasted time. • Attempted project was probably over my head compared with current programming classes, had to depend on different examples for methods. • Could was not familiar enough with libraries I was working with to debug efficiently.