Skip to content

AB261/MailSync

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MailSync


Paper: NDNizing Existing Applications: Research Issues and Experiences

Overview

At the current stage, MailSync is a proof-of-concept application powered by Named Data Networking (NDN). MailSync project consists of two applicaitons - a laptop version and an Android version.

  • greenmail-mailsync: MailSync laptop version
  • mailsync-android: MailSync Android version

Test Running

Demo video

greenmail-mailsync (Laptop version)

Download activation.jar and mail.jar from this website:

* https://code.google.com/archive/p/javamail-android/downloads 

Install these two lib locally using Maven:

* mvn install:install-file -Dfile=/[CHANGE IT]/activation.jar -DgroupId=javax.activation -DartifactId=activation -Dversion=10.0.0 -Dpackaging=jar
* mvn install:install-file -Dfile=/[CHANGE IT]/mail.jar -DgroupId=com.sun.mail -DartifactId=javax.mail -Dversion=10.0.0 -Dpackaging=jar

Download Thunderbird mail client from this website:

* https://www.thunderbird.net/en-US/

Configure the Thunderbird server settings:

* Server Name: 127.0.0.1
* Port: 3143
* Connection security: None
* Authentication method: Password, transmitted insecurely

Follow the guide to install NFD and run it in the background.

mailsync-android (Android version)

On your Android device, configure your Gmail client incoming server:

* Server name: 127.0.0.1
* Port: 3143
* Security: none

Download NFD Android version Google Play store and run it in the background.

Testing Steps:

Configuration:

  1. On Android, configure Gmail client's incoming server to listen to MailSync:
1. Create a brand new email account (performance issue if you use the account containing tons of emails)
2. Add the account to Gmail client. Click "Other" to add account, manually configure the incoming server to listen to "127.0.0.1", port "3143", security "None". Outgoing server should be "smpt.gmail.com".
  1. On laptop, configure the thunderbird incoming server the same way.

Actual Testing

For now, everytime before sending new emails to Android and then to synchronizing emails between Android and laptop, make sure Android's Gmail and laptop's thunderbird has exactly same emails. On Android click "Run" button on MailSync and go gack to Gmail client, scroll down to make sure you have the most recent emails, then click "Clear ALL". On laptop, run the mailsync script, then go to thunderbird and click "Get Message" to get the latest emails, shut down the mailsync by "Command + C". Now Android and laptop should have same emails.

  1. Run NFD on Android.
  2. Run MailSynn and click "Run" button.
  3. Send a new email (not too large) to your testing account and wait for a while (since there is no notification for completing processing, wait a bit longer say 1 min)
  4. Turn the Android hotspot on, cut off the data connection.
  5. Connect your laptop to the Android hotspot.
  6. Run mailsync script, it will automatically fetching emails from Android after starting up. Wait for a while untill no more stuff coming onto the console.
  7. Click the "Get Message" button on thunderbird.
  8. You should get the email from your phone.

Developement

Technologies involved:

Prerequisites

Current Issues

  • IMAP connection sometimes crashes for unknown reason
  • For the first time a user connects to MailSync on Android, it takes long time to synchronize. The ideal case might be for the first time, MailSync doesn't store all user's emails into database. Only when new emails come in, we store them.
  • No retransmission mechanism for NDN which causes the whole synchronization failed if a single email chunk get lost.
  • No security mechanisms
  • UI/UX to be improved

Play it, crash it and report more issues on the Issue page.

Contirbuting

Please read the NDN Contributing Guide. We are not currently using Gerrit on this project, so that part can be ignored for now. Contributions should follow the NDN Style Guide.

Communication

Our chat channel is on Slack

Please join our mailing list to discuss questions regarding the project: https://named-data.net/codebase/platform/support/mailing-lists/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.8%
  • Shell 0.2%