imapsync
Hướng dẫn chuyển mail với Imapsync 10

Trong thời đại số hóa hiện nay, việc chuyển đổi dữ liệu từ một dịch vụ email sang dịch vụ khác là một nhiệm vụ phổ biến. Có nhiều lý do khiến người dùng muốn thực hiện việc này, từ việc thay đổi nhà cung cấp dịch vụ email đến việc sáp nhập hoặc di cư dữ liệu từ một tài khoản cá nhân sang một tài khoản công việc.

Trong quá trình chuyển đổi dữ liệu email, một trong những công cụ phổ biến nhất được sử dụng là Imapsync. Imapsync là một công cụ mã nguồn mở, cho phép sao chép hoặc chuyển đổi dữ liệu email từ một máy chủ IMAP đến một máy chủ IMAP khác. Điều này giúp người dùng có thể chuyển toàn bộ email, thư mục và cấu trúc thư mục từ một tài khoản email sang tài khoản khác một cách đơn giản và hiệu quả.

Để sử dụng Imapsync, trước tiên bạn cần có một máy tính hoặc máy chủ Linux. Imapsync được viết bằng ngôn ngữ Perl, vì vậy bạn cần cài đặt Perl trên máy tính của mình trước khi tiếp tục. Sau đó, bạn có thể tải xuống mã nguồn Imapsync từ trang web chính thức hoặc sử dụng gói quản lý gói của hệ điều hành Linux để cài đặt Imapsync một cách dễ dàng.

Một khi Imapsync đã được cài đặt, bạn cần cung cấp thông tin về tài khoản nguồn (máy chủ nguồn, tên người dùng, mật khẩu) và tài khoản đích (máy chủ đích, tên người dùng, mật khẩu) để thực hiện quá trình chuyển đổi. Imapsync hỗ trợ nhiều tùy chọn để điều chỉnh quá trình sao chép, ví dụ như chỉ sao chép email mới nhất, bỏ qua các email đã được sao chép trước đó, và nhiều hơn nữa.

Quá trình chuyển đổi email có thể mất một thời gian tùy thuộc vào số lượng email và kích thước dữ liệu. Sau khi quá trình chuyển đổi hoàn tất, bạn nên kiểm tra kỹ lưỡng các email và thư mục để đảm bảo rằng không có dữ liệu bị thất thoát

Bước 1: Cài đặt Imapsync

1. Cài đặt Imapsync trên CentOS

  • Gói Imapsync có sẵn trong kho gói EPEL. Trước tiên, hãy đảm bảo rằng bạn đã thêm EPEL vào hệ thống của mình hoặc cài đặt nó trước.
yum install epel-release
  • Cài đặt imapsync với lệnh yum
yum install imapsync
image 9
Hướng dẫn chuyển mail với Imapsync 11
image 10
Hướng dẫn chuyển mail với Imapsync 12

2. Cài đặt Imapsync trên Ubuntu

  • Cập nhật và cài đặt các thư viện cần thiết
apt-get update
apt-get install libdigest-hmac-perl libdigest-hmac-perl libterm-readkey-perl libterm-readkey-perl libdate-manip-perl libdate-manip-perl libmail-imapclient-perl
  • Cài đặt imapsync
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/i/imapsync/imapsync_1.315+dfsg-1_all.deb
dpkg -i imapsync_1.315+dfsg-1_all.deb

Bước 2: Chuyển mail với Imapsync

1. Chuyển mail thủ công

Cú pháp thực hiện

imapsync --host1 11.22.33.44 --user1 [email protected] --password1 12345678 --ssl1 --host2 55.66.77.88 --user2 [email protected] --password2 12345678 --ssl2

Chú thích:

  • host1 11.22.33.44: IP mail nguồn
  • user1 [email protected]: Tài khoản mail nguồn
  • password1 12345678: Mật khẩu của tài khoản mail nguồn
  • host2 55.66.77.88: IP mail đích
  • user1 [email protected]: Tài khoản mail đích
  • password1 12345678: Mật khẩu của tài khoản mail đích

Ảnh minh hoạ thực hiện di chuyển mail

CleanShot 2023 06 08 at 15.39.35
Hướng dẫn chuyển mail với Imapsync 13

2. Sử dụng script để chuyển nhiều mail

Để giải quyết việc nhập nhiều tài khoản người dùng một cách tự động, bạn có thể sử dụng một tệp tin CSV (comma-separated values) để lưu trữ thông tin người dùng. Dưới đây là một phiên bản script Bash Shell sử dụng tệp tin CSV để chuyển email:

  • Tạo script
mkdir -p /root/
vi /root/email_migration.sh

Sau đó copy đoạn mã sau vào file email_migration.sh

#!/bin/bash

read -p "Nhập địa chỉ IP máy chủ nguồn: " source_ip
read -p "Nhập địa chỉ IP máy chủ đích: " destination_ip

user_file="users.csv"

while IFS=',' read -r user password; do
    user=$(echo $user | tr -d '[:space:]')
    password=$(echo $password | tr -d '[:space:]')
    command="imapsync --syncinternaldates --host1 $source_ip --user1 $user --password1 '$password' --host2 $destination_ip --user2 $user --password2 '$password'"
    eval $command
done < "$user_file"

Sau đó phân quyền script với lệnh chmod +x /root/email_migration.sh

  • Tạo danh sách tài khoản mail

Tạo một tệp tin CSV users.csv với hai cột: userpassword, chứa thông tin tài khoản email nguồn và mật khẩu tương ứng. Ví dụ:

user,password
nguồ[email protected],password1
nguồ[email protected],password2
nguồ[email protected],password3
nguồ[email protected],password4
nguồ[email protected],password5
nguồ[email protected],password6
.................

Trong tệp tin CSV, cột đầu tiên là user và chứa địa chỉ email nguồn, cột thứ hai là password và chứa mật khẩu tương ứng của từng tài khoản email nguồn. Bạn có thể thêm các dòng tiếp theo để đưa thêm thông tin về các tài khoản email nguồn khác.

  • Chạy script

Bây giờ bạn hãy chạy thực thi script với lệnh sau. Và bạn lưu ý nếu số lượng mail quá nhiều bạn nên chạy trong screen mode để hoạt động

bash /root/email_migration.sh