All Projects → modoboa → modoboa-imap-migration

modoboa / modoboa-imap-migration

Licence: ISC license
An extension to ease the migration between 2 IMAP servers using offlineimap

Programming Languages

python
139335 projects - #7 most used programming language
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
HTML
75241 projects

Projects that are alternatives of or similar to modoboa-imap-migration

maildir2gmail
Maildir 2 Gmail
Stars: ✭ 14 (+0%)
Mutual labels:  imap, migration
Imapcopy
Recursively copy all e-mail messages and folders from one IMAP account to another.
Stars: ✭ 52 (+271.43%)
Mutual labels:  imap, migration
Imapsync
Imapsync is an IMAP transfers tool. The purpose of imapsync is to migrate IMAP accounts or to backup IMAP accounts. IMAP is one of the three current standard protocols to access mailboxes, the two others are POP3 and HTTP with webmails, webmails are often tied to an IMAP server. Upstream website is
Stars: ✭ 2,201 (+15621.43%)
Mutual labels:  imap, migration
data-migrator
A declarative data-migration package
Stars: ✭ 15 (+7.14%)
Mutual labels:  migration
migration
TYPO3 Migration Framework for every kind of migration/imports from CLI (e.g. Templavoila to Gridelements, tt_news to news, etc...)
Stars: ✭ 52 (+271.43%)
Mutual labels:  migration
Mailozaurr
Mailozaurr is a PowerShell module that aims to provide SMTP, POP3, IMAP and probably some other ways to interact with Email. Underneath it uses MimeKit and MailKit libraries written by Jeffrey Stedfast.
Stars: ✭ 107 (+664.29%)
Mutual labels:  imap
list-of-tech-migrations
list of public tech migrations
Stars: ✭ 428 (+2957.14%)
Mutual labels:  migration
Meli
🐝 experimental terminal mail client, mirror of https://git.meli.delivery/meli/meli.git https://crates.io/crates/meli
Stars: ✭ 242 (+1628.57%)
Mutual labels:  imap
alembic utils
An alembic/sqlalchemy extension for migrating sql views, functions, triggers, and policies
Stars: ✭ 105 (+650%)
Mutual labels:  migration
laravel-migrate-check
An artisan command to check for pending migrations with proper exit code
Stars: ✭ 53 (+278.57%)
Mutual labels:  migration
maintenance job
Mechanism to run testable one-off jobs in Rails at deploy time to manipulate data
Stars: ✭ 27 (+92.86%)
Mutual labels:  migration
PySMS
Simple Python API that that allows you to send texts via SMTP with a best effort approach and process replies via IMAP
Stars: ✭ 19 (+35.71%)
Mutual labels:  imap
camunda-bpm-migration
Fluent Java API for Camunda Platform 7 process instance migration
Stars: ✭ 18 (+28.57%)
Mutual labels:  migration
cigration
Citus shard migration tool
Stars: ✭ 28 (+100%)
Mutual labels:  migration
r2dbc-migrate
R2DBC database migration tool & library
Stars: ✭ 83 (+492.86%)
Mutual labels:  migration
Davmail
DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange and Office 365 Gateway - Synced with main subversion repository at
Stars: ✭ 250 (+1685.71%)
Mutual labels:  imap
imail
small mail server
Stars: ✭ 88 (+528.57%)
Mutual labels:  imap
SuperGrate
💾 Get moving with Super Grate; a free & open source Windows Profile Migration & Backup Utility. Super Grate is a GUI (Graphical User Interface) that assists Microsoft's USMT (User State Migration Utility) in performing remote migrations over a network connection.
Stars: ✭ 91 (+550%)
Mutual labels:  migration
imap-honey
IMAP or SMTP honeypot written in Golang
Stars: ✭ 22 (+57.14%)
Mutual labels:  imap
set-env-to-github env
A migration tools convert `::set-env`/`::set-output`/`::save-state` to $GITHUB_ENV/$GITHUB_OUTPUT/$GITHUB_STATE on GitHub Actions.
Stars: ✭ 27 (+92.86%)
Mutual labels:  migration

Mailboxes migration using OfflineIMAP

gha codecov

A simple Modoboa extension which provides a way to migrate existing mailboxes using OfflineIMAP.

How does it work

This extension mainly provides a cron script which periodically synchronize user mailboxes from an existing IMAP server to a new one. The workflow is pretty simple:

  • A user from the old server logs into Modoboa using the same credentials
  • A new account is automatically created and a new migration task is created using the provided credentials
  • The cron script periodically synchronizes mailboxes corresponding to migration tasks
  • Once a migration is done, it can be disabled through the admin panel

Installation

Install this extension system-wide or inside a virtual environment by running the following command:

$ python setup.py install

Then, edit the settings.py file of your modoboa instance and add modoboa_imap_migration inside the MODOBOA_APPS variable like this:

MODOBOA_APPS = (
  # ...
  'modoboa_imap_migration',
)

Then, add the following at the end of the file:

from modoboa_imap_migration import settings as modoboa_imap_migration_settings
modoboa_imap_migration_settings.apply(globals())

Restart the python process running modoboa (uwsgi, gunicorn, apache, whatever).

Run the following commands to setup the database tables:

$ cd <modoboa_instance_dir>
$ python manage.py migrate modoboa_imap_migration
$ python manage.py load_initial_data
$ python manage.py collectstatic

You also need to install OfflineIMAP.

Configuration

Authentication backend

Warning

Please make sure automatic domain/mailbox creation is enabled, otherwise the authentication won't work. Go to the online settings panel (admin tab) and check your current state.

An IMAP authentication backend is provided by the extension and must be enabled.

Edit the settings.py file and modify the AUTHENTICATION_BACKENDS variable as follows:

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'modoboa_imap_migration.auth_backends.IMAPBackend',
)

cron script

The synchronization script must be configured to run periodically on your new server. Since it will copy mailboxes content to its final destination, filesystem permissions must be respected. To do that, it must be executed by the user which owns mailboxes (generally vmail).

Here is a configuration example where the script is executed every hours. You can copy it inside the /etc/cron.d/modoboa file:

PYTHON=/srv/modoboa/env/bin/python
INSTANCE=/srv/modoboa/instance

0       */1     *       *       *       vmail   cd /srv/vmail && $PYTHON $INSTANCE/manage.py generate_offlineimap_config --output .offlineimaprc && /usr/local/bin/offlineimap > /dev/null 2>&1

Feel free to adapt it.

Online settings

You need to configure the access to the old IMAP server.

All the configuration is done from the admin panel (Modoboa > Parameters > IMAP migration).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].