Ichi chinyorwa chinotarisa maitiro ekufambisa tsamba pakati pemasevha akasiyana uchishandisa IMAPSync utility kuburikidza neyekare mushandisi interface.
Pasevha yekuenda iwe unofanirwa kuve nebhokisi rine inodiwa yekupinda uye password. Usati washandisa Imapsync, unofanira kuiisa (https://imapsync.lamiral.info/#install).
Sezvo sangano richirambidza kushandiswa kwemapassword eemail evashandi muscript, maitiro ekufambisa anopihwa kumushandisi. Nzvimbo yekushandisa yewebhu yakagadzirwa nechinangwa ichi, inosanganisira form module (gis.html) uye imapsync script launcher module (gis.php). Kuzadza servers IMAP inogona kuitwa otomatiki nekuongorora zviri mubhokisi remazita ebhokisi retsamba. Kushandisa Fetchmail seRoundcube plugin hakufungidzirwi, sezvo ndisina kuwana ongororo yakadzama uye yakabatana yenyaya iyi.
Iyo webhu interface ine minda ine ruzivo nezve mabhokisi etsamba, oparesheni yekubuditsa nzvimbo, uye mabhatani ekudzora (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!");
?>
Iyo mailbox migration script (startimapsync.sh) inobvuma mutsara wemirairo paramita: logins uye mapassword, imap maseva ekwakabva uye kwekuenda mailboxes, zvichiteerana.
#!/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
Source: www.habr.com
