A plugin to migrate mailboxes using IMAP
Project description
Mailboxes migration using OfflineIMAP
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
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).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file modoboa-imap-migration-1.4.1.tar.gz
.
File metadata
- Download URL: modoboa-imap-migration-1.4.1.tar.gz
- Upload date:
- Size: 275.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2098c166d201adb365e50388a94c35719fd48c7a18ff9ec0528090940b5924a1 |
|
MD5 | 4729562e6dd624cd653fa212aaefb531 |
|
BLAKE2b-256 | 618cc0c50f338e712a27ea6063fba36a506ff64ffd72d4f321a855eda1acaa10 |
File details
Details for the file modoboa_imap_migration-1.4.1-py2.py3-none-any.whl
.
File metadata
- Download URL: modoboa_imap_migration-1.4.1-py2.py3-none-any.whl
- Upload date:
- Size: 139.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 646684609ae96443c077a28ed980ccd5ba7148cb265c7381bc630143519d7c8c |
|
MD5 | 9aedd8681088aeacbfcb92b4a0f053f6 |
|
BLAKE2b-256 | 6508f5018ff4c5321adc9cd94cb5b40b8f344cefa820f674261866828b330a49 |