{"id":15638300,"url":"https://github.com/manusa/mnimapsync","last_synced_at":"2025-06-23T11:34:05.662Z","repository":{"id":70696101,"uuid":"14417940","full_name":"manusa/mnIMAPSync","owner":"manusa","description":"Java IMAP email syncing tool","archived":false,"fork":false,"pushed_at":"2023-03-22T13:43:34.000Z","size":187,"stargazers_count":40,"open_issues_count":15,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-30T06:44:29.134Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manusa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-15T07:36:06.000Z","updated_at":"2025-01-09T03:28:45.000Z","dependencies_parsed_at":"2024-08-01T12:22:00.157Z","dependency_job_id":"af3dfc19-a844-4e04-9352-3233ee7b5a49","html_url":"https://github.com/manusa/mnIMAPSync","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/manusa/mnIMAPSync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2FmnIMAPSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2FmnIMAPSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2FmnIMAPSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2FmnIMAPSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manusa","download_url":"https://codeload.github.com/manusa/mnIMAPSync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2FmnIMAPSync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261469348,"owners_count":23163072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T11:20:58.501Z","updated_at":"2025-06-23T11:34:00.648Z","avatar_url":"https://github.com/manusa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [mnIMAPSync](http://www.marcnuri.com/)\n\n## Description\nJava based IMAP Server syncing tool (work in progress).\n\nThis tool is inspired in [imapsync](http://imapsync.lamiral.info/). mnIMAPSync is still in\nthe early stages although it has been tested in several production systems, it may\nfail in servers where it has not been tested yet. In the last part of this document there is a list of \ntested IMAP servers, please notify me if you successfully use mnIMAPSync with another server or \ncreate an issue for failing servers.\n\nmnIMAPSync can be used to migrate or backup an IMAP account to another either in the same server or\n in different servers. The program can be run standalone (command line interface) or accessed directly \nfrom java.\n\n## Features\n- SSL Support\n- Multithread\n- Api Interface\n- Command line execution\n- Deletion of no longer existing messages and folders\n\n## Requirements\n- Java 1.5\n\n## Releases\n- [0.0.3-alpha](https://github.com/manusa/mnIMAPSync/releases/download/0.0.3-alpha/mnIMAPSync-0.0.3-alpha.zip)\n- [0.0.2-alpha](https://github.com/manusa/mnIMAPSync/releases/download/0.0.2-alpha/mnIMAPSync-0.0.2-alpha.zip)\n- [0.0.1-alpha](https://github.com/manusa/mnIMAPSync/releases/download/0.01-alpha/mnIMAPSync-0.0.1-alpha.zip)\n\n## Usage\nThe easiest way is to launch the program from the command-line interface.\nDownload the [latest binary release](https://github.com/manusa/mnIMAPSync/releases/tag/v0.0.4)\n and execute as follows:\n\n```Batchfile\njava -jar mnIMAPSync.jar --host1 imap.gmail.com --port1 993  --user1 user@gmail.com --password1 password --ssl1 --host2 other.server.com --port2 143 --user2 user2@other.server.com --password2 password2 --delete\n```\n\nYou can also use any of the convenient shell scripts bundled in the distribution to avoid typing \n`java -jar mnIMAPSync.jar`.\n\nYou can find a tutorial on how to use and install mnIMAPSync at \nThere is an instructable available at [blog.marcnuri.com](http://blog.marcnuri.com/incremental-e-mail-backup-and-migration-using-mnimapsync/)\n\n### Command-line arguments\n|Option|Description|\n|------|-----------|\n|`--host1`*|Host of the source mail server.|\n|`--port1`*|IMAP port of the source mail server.|\n|`--user1`*|User name for the account on the source mail server.|\n|`--password1`*|Password for the account on the source mail server.|\n|`--ssl1`|Optional parameter indicating if the program should connect using SSL to the source server.|\n|`--host2`*|Host of the target mail server.|\n|`--port2`*|IMAP port of the target mail server.|\n|`--user2`*|User name for the account on the target mail server.|\n|`--password2`*|Password for the account on the target mail server.|\n|`--ssl2`|Optional parameter indicating if the program should connect using SSL to the target server.|\n|`--threads`|Number of threads to use. Keep in mind some servers limit the number of concurrent connections|\n|`--delete`|Optional parameter indicating it the program should delete messages and folders in the target server that don't exist in the source.|\n\\*Required arguments\n\n\n\n## Motiviation\nWhen using [imapsync](http://imapsync.lamiral.info/) to sync different servers I'm getting lots of \nduplicate messages in successive runs. This is due to the fact that when dealing with unconventional\ne-mails, each server stores certain header information in its own way.\n\nThis program is based in the principle of maximizing performance avoiding duplicates. \nIf messages that have already been synced are modified (in the non header part [attachments removed...]) \nthis messages won't be copied again.\n\n## Syncing process\n\n### Target Indexing\n\nThe process starts indexing mail messages and IMAP folders in the target server. This information\nwill be used later to check if the target server already contains messages we are copying from the source \nserver.\n\nThe Index is created in a per folder basis. For each IMAP folder in the target server a separate message index \nwill be created. Every folder in the target server is crawled.\n\n### Copy process\n\nOnce the target index is completed, if and only if this process was successful, the copy process begins.\nIf there were errors indexing the target the copying process will abort, not aborting could mean duplicating\nmessages in the target server.\n\n## Tested Servers\n- [Dovecot](http://www.dovecot.org)\n- [hMailServer](http://www.hmailserver.com)\n- [Gmail](http://mail.google.com)\n- [Zimbra Collaboration](http://www.zimbra.com)\n\nPlease, share your experience with any other server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanusa%2Fmnimapsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanusa%2Fmnimapsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanusa%2Fmnimapsync/lists"}