Webmaster общности: Predpriemach.com | SearchEngines.bg

    Прехвърляне на поща между услуги, използващи IMAP Sync

    imapsync

    Понякога администраторите трябва да прехвърлят пощенския сървър: или на друг хардуер, или дори на някаква облачна услуга. Задачата обикновено изглежда проста: акаунти се създават за всички потребители на новото място, след това пощата се копира и MX записите накрая се коригират.

    В действителност обаче прехвърлянето на поща може да бъде трудно: например при прехвърляне в облачна услуга няма директен достъп до диска и може да няма удобни средства за миграция. В този случай полезната програма Imapsync може да ви помогне , което ще бъде разгледано по-нататък.

    Прехвърляне с imapsync от едно място на друго.
    Прехвърляне с imapsync от едно място на друго.

    Да предположим, че миграцията е от частен пощенски сървър към Google Suite и вече сме стигнали до стъпката, когато се създават нови акаунти в Google Suite. Ще клонираме хранилището с изходния код на mailsync на някаква машина, работеща с Ubuntu 18.04:

    git clone https://github.com/imapsync/imapsync.git

    Отидете в директорията с изходния код:

    CD imapsync

    Инсталирайте необходимите библиотеки (подробности във файла „INSTALL.d / INSTALL.Ubuntu.txt“):

    sudo apt install            \
    libauthen-ntlm-perl         \
    libclass-load-perl          \
    libcrypt-ssleay-perl        \
    libdata-uniqid-perl         \
    libdigest-hmac-perl         \
    libdist-checkconflicts-perl \
    libfile-copy-recursive-perl \
    libio-compress-perl         \
    libio-socket-inet6-perl     \
    libio-socket-ssl-perl       \
    libio-tee-perl              \
    libmail-imapclient-perl     \
    libmodule-scandeps-perl     \
    libnet-ssleay-perl          \
    libpar-packer-perl          \
    libreadonly-perl            \
    libregexp-common-perl       \
    libssl-dev                  \
    libsys-meminfo-perl         \
    libterm-readkey-perl        \
    libtest-fatal-perl          \
    libtest-mock-guard-perl     \
    libtest-pod-perl            \
    libtest-requires-perl       \
    libtest-simple-perl         \
    libunicode-string-perl      \
    liburi-perl                 \
    libtest-nowarnings-perl     \
    libtest-deep-perl           \
    libtest-warn-perl

    След това създайте файла „mails.csv“, в който всеки ред ще изглежда така:

    old_login | old_pass | new_login | new_pass |

    Тук „old_login“ и „old_pass“ са потребителското име и паролата на потребителя на стария сървър, а „new_login“ и „new_pass“ са потребителското име и паролата на потребителя на новия сървър.

    Ако мигрирате към Google Suite, тогава ще трябва да отидете на настройките за защита -> „Основни настройки“ -> „Приложения, които нямат надеждна защита“ и да разрешите приложения, които нямат надеждна защита по време на миграцията. Без тази настройка може да не можете да се свържете с IMAP.

    След това остава да напишем малък скрипт, който последователно да изпълнява imapsync за всеки от нашите потребители. Примерен скрипт:

    #!/bin/bash
    
    cd `dirname $0`
    
    for line in `cat mails.csv | grep -v ^#`; do
            M_USER=`echo ${line} | cut -d '|' -f1`
            M_PASS=`echo ${line} | cut -d '|' -f2`
            N_USER=`echo ${line} | cut -d '|' -f3`
            N_PASS=`echo ${line} | cut -d '|' -f4`
            echo "Processing ${M_USER}..."
            ./imapsync \
                    --host1 mail.company.com    --user1 ${M_USER} --password1 ${M_PASS} \
                    --host2 imap.gmail.com:993  --user2 ${N_USER} --password2 ${N_PASS} --ssl2
            if [ $? -ne "0" ]; then
                    echo ${M_USER} >> mail_errors
            fi
    done

    След изпълнение на скрипта потребителските имена, за които прехвърлянето на поща е неуспешно, ще бъдат записани във файла „mail_errors“. Обикновено това се дължи или на големия обем поща (надвишаващ квотата), или на наличието на специални символи в паролите. Ето защо е по-добре да проверите предварително размера на пощенските кутии и да зададете поне пароли на пощенските кутии, които не съдържат знаци, които, когато са заменени в командни числа, могат да бъдат интерпретирани неправилно (например знак за долар или обратна черта).

    Последните ревизии на mailsync включват поддръжка за акаунти на GMail и MS Exchange. 

    Оставете коментар