Kab lus no yuav saib yuav ua li cas hloov xa ntawv ntawm cov servers sib txawv siv IMAPSync cov nqi hluav taws xob los ntawm cov neeg siv khoom qub qub.
Nyob rau ntawm qhov chaw neeg rau zaub mov koj yuav tsum muaj ib lub thawv nrog tus ID nkag mus thiab lo lus zais. Ua ntej siv Imapsync, koj yuav tsum nruab nws (https://imapsync.lamiral.info/#install).
Vim tias lub koom haum txwv tsis pub siv cov password email ntawm cov neeg ua haujlwm hauv tsab ntawv sau, cov txheej txheem hloov chaw raug xa mus rau tus neeg siv. Ib lub web-based user interface tau tsim los rau lub hom phiaj no, uas muaj ib daim ntawv module (gis.html) thiab ib lub imapsync script launcher module (gis.php). Sau ntawv servers IMAP tuaj yeem ua tau los ntawm kev tshuaj xyuas cov ntsiab lus ntawm lub thawv xa ntawv lub npe. Kev siv Fetchmail ua lub plugin Roundcube tsis raug txiav txim siab, vim kuv nrhiav tsis tau qhov kev tshuaj xyuas ntxaws ntxaws thiab sib xws ntawm qhov teeb meem no.
Lub vev xaib interface muaj cov teb nrog cov ntaub ntawv hais txog cov thawv xa ntawv, thaj chaw ua haujlwm ua haujlwm tso tawm, thiab cov khawm tswj (gis.html).

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script>
//Π·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° sh ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ linux
function isexe() {
var ta = document.getElementById('output');
document.getElementById('output').value += 'Start import, please wait...n';
var source = new EventSource('gis.php');
source.addEventListener('message', function(e) {
if (e.data !== '') {
ta.value += e.data + 'n';
}
}, false);
source.addEventListener('error', function(e) {
source.close();
}, false);
}//isexe
//ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ
function Complete() {
document.cookie = "mail1="+document.maildata.mail1.value;
document.cookie = "pass1="+document.maildata.pass1.value;
document.cookie = "mail2="+document.maildata.mail2.value;
document.cookie = "pass2="+document.maildata.pass2.value;
document.cookie = "msrv1="+document.maildata.msrv1.value;
document.cookie = "msrv2="+document.maildata.msrv2.value;
//alert(document.cookie); // ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΠΊΡΠΊΠΈ
isexe();
document.cookie = "mail1="+document.maildata.mail1.value+"; max-age=0";
document.cookie = "pass1="+document.maildata.pass1.value+"; max-age=0";
document.cookie = "mail2="+document.maildata.mail2.value+"; max-age=0";
document.cookie = "pass2="+document.maildata.pass2.value+"; max-age=0";
document.cookie = "msrv1="+document.maildata.msrv1.value+"; max-age=0";
document.cookie = "msrv2="+document.maildata.msrv2.value+"; max-age=0";
}//Complete
function ShowCookie() {
alert(document.cookie); // ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΠΊΡΠΊΠΈ
}
</script>
</head>
<body>
<H1>ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°</H1>
<FORM NAME="maildata">
<TABLE>
<TR><TD><B>ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ:<B></TD>
<TD><INPUT NAME="mail1" SIZE=20 VALUE=""
<TR><TD><B>ΠΠ°ΡΠΎΠ»Ρ:<B>
<TD><INPUT TYPE="password" NAME="pass1" SIZE=20 VALUE=""
<TR><TD><B>IMAP ΡΠ΅ΡΠ²Π΅Ρ:<B></TD>
<TD><INPUT NAME="msrv1" SIZE=20 VALUE=""<TD>
<TR><TD><B>ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ:<B></TD>
<TD><INPUT NAME="mail2" SIZE=20 VALUE=""
<TR><TD><B>ΠΠ°ΡΠΎΠ»Ρ:<B>
<TD><INPUT TYPE="password" NAME="pass2" SIZE=20 VALUE=""
<TR><TD><B>IMAP ΡΠ΅ΡΠ²Π΅Ρ:<B></TD>
<TD><INPUT NAME="msrv2" SIZE=20 VALUE=""<TD>
</TABLE>
<p>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:<br/><textarea id="output" style="width: 50%; height: 25em;"></textarea></p>
<INPUT TYPE="button" VALUE="ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ" onClick="Complete();">
<INPUT TYPE="reset" VALUE="Π‘Π±ΡΠΎΡ">
<INPUT TYPE="button" VALUE="ΠΠΎΠΊΠ°Π·Π°ΡΡ cookie" onClick="ShowCookie();">
</FORM>
</body>
</html>imapsync script launcher (gis.php).
<?php
ob_end_flush();
ini_set("output_buffering", "0");
ob_implicit_flush(true);
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
//Π²ΡΠ²ΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
function echoEvent($datatext) {
echo "data: ".implode("ndata: ", explode("n", $datatext))."nn";
}//echoEvent
echoEvent("Start!");
//ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° imapsync Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ
$strexe = "/bin/bash /home/user/imapsync/startimapsync.sh "
.htmlspecialchars($_COOKIE["mail1"]).' '
.htmlspecialchars($_COOKIE["pass1"])." "
.htmlspecialchars($_COOKIE["mail2"])." "
.htmlspecialchars($_COOKIE["pass2"])." "
.htmlspecialchars($_COOKIE["msrv1"])." "
.htmlspecialchars($_COOKIE["msrv2"]);
echoEvent($strexe);
//Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ sh ΡΠΊΡΠΈΠΏΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ linux
$proc = popen($strexe,'r');
//ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ php, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
while (!feof($proc)) {
echoEvent(fread($proc, 4096));
}
echoEvent("Finish!");
?>
Lub mailbox migration tsab ntawv (startimapsync.sh) lees txais cov kab lus hais kom ua: nkag mus thiab lo lus zais, imap servers ntawm lub hauv paus thiab cov chaw xa ntawv, raws li.
#!/bin/bash
#ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΡΠΊΡΠ΄Π° Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ Π΄Π°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ
cd `dirname $0`
#Π·Π°ΠΏΡΡΠΊ imapsync Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ
/home/user/imapsync/./imapsync
#ΡΠ΅ΡΠ²Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°, Π»ΠΎΠ³ΠΈΠ½, ΠΏΠ°ΡΠΎΠ»Ρ
--host1 $5:993 --user1 $1 --password1 $2
#ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°, Π»ΠΎΠ³ΠΈΠ½, ΠΏΠ°ΡΠΎΠ»Ρ
--host2 $6:993 --user2 $3 --password2 $4
#ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ
--ssl1 --ssl2
#ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ
--automap
#ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡ Π²Ρ
ΠΎΠ΄ΡΡΠΈΡ
--folderfirst INBOX
#ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ
--regextrans2 "s/&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-/Sent/"
--regextrans2 "s/&BBoEPgRABDcEOAQ9BDA-/Trash/"
--regextrans2 "s/&BCEEPwQwBDw-/Junk/"
--regextrans2 "s/&BCcENQRABD0EPgQyBDgEOgQ4-/Drafts/"
#ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π½Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΠΈΡΡΠΌΠ° Π²ΠΎ ΠΡ
ΠΎΠ΄ΡΡΠΈΡ
--regexflag 's/\Unseen//g'
#Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ
--useheader Message-Id
Tau qhov twg los: www.hab.com
