เดเดฐเต เดชเตเดฐเดพเดเตเดค เดเดชเดฏเตเดเตเดคเต เดเดจเตเดฑเตผเดซเตเดธเดฟเดฒเตเดเต IMAPSync เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เดตเดฟเดตเดฟเดง เดธเตเตผเดตเดฑเตเดเตพเดเตเดเดฟเดเดฏเดฟเตฝ เดเดเตเดเดจเต เดฎเตเดฏเดฟเตฝ เดเตเดฎเดพเดฑเดพเดฎเตเดจเตเดจเต เด เดฒเตเดเดจเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด.
เดกเตเดธเตเดฑเตเดฑเดฟเดจเตเดทเตป เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดฒเตเดเดฟเดจเตเด เดชเดพเดธเตโเดตเตเดกเตเด เดเดณเตเดณ เดเดฐเต เดฌเตเดเตเดธเต เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด. Imapsync เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดจเดฟเดเตเดเตพ เด เดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดฃเด (https://imapsync.lamiral.info/#install).
เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดเตเดตเดจเดเตเดเดพเดฐเตเดเต เดเดฎเตเดฏเดฟเตฝ เดชเดพเดธเตโเดตเตเดกเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดธเตเดฅเดพเดชเดจเด เดตเดฟเดฒเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดฎเตเดเตเดฐเตเดทเตป เดชเตเดฐเดเตเดฐเดฟเดฏ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดจเดฟเดฏเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต. เดเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดตเตเดฌเต เด เดงเดฟเดทเตเด เดฟเดค เดเดชเดฏเตเดเตเดคเต เดเดจเตเดฑเตผเดซเตเดธเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดคเตเดคเดฟเดเตเดเตเดฃเตเดเต, เด เดคเดฟเตฝ เดเดฐเต เดซเตเด เดฎเตเดกเตเดฏเตเดณเตเด (gis.html) เดเดฐเต imapsync เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดฒเตเดเตเดเตผ เดฎเตเดกเตเดฏเตเดณเตเด (gis.php) เดเตพเดชเตเดชเตเดเตเดจเตเดจเต. เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตฝ เดธเตเตผเดตเดฑเตเดเตพ เดฎเตเดฏเดฟเตฝเดฌเตเดเตเดธเต เดจเตเดฏเดฟเด เดซเตเตฝเดกเดฟเดฒเต เดเดณเตเดณเดเดเตเดเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดคเตเดเตเดฃเตเดเต IMAP เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด. เด เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเตเดฑเต เดตเดฟเดถเดฆเดฎเดพเดฏเดคเตเด เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเตเดฎเดพเดฏ เดตเดฟเดถเดเดฒเดจเด เดเดจเดฟเดเตเดเต เดเดฃเตเดเตเดคเตเดคเดพเตป เดเดดเดฟเดฏเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดเดฐเต เดฑเตเดฃเตเดเตเดเตเดฏเตเดฌเต เดชเตเดฒเดเดฟเตป เดเดฏเดฟ Fetchmail เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
เดฎเตเดฏเดฟเตฝเดฌเตเดเตเดธเตเดเตพ, เดเดฐเต เดเดชเตเดชเดฑเตเดทเตป เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดเดเตเดเตเดชเตเดเตเดเต เดเดฐเดฟเดฏ, เดเตบเดเตเดฐเตเตพ เดฌเดเตเดเดฃเตเดเตพ (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 เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดฒเตเดเตเดเตผ (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!");
?>
เดฎเตเดฏเดฟเตฝเดฌเตเดเตโเดธเต เดฎเตเดเตเดฐเตเดทเตป เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเต (startimapsync.sh) เดเดฎเดพเตปเดกเต เดฒเตเตป เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต: เดฒเตเดเดฟเดจเตเดเดณเตเด เดชเดพเดธเตโเดตเตเดกเตเดเดณเตเด, เดฏเดฅเดพเดเตเดฐเดฎเด เดเดฑเดตเดฟเดเดคเตเดคเดฟเดจเตเดฑเต imap เดธเตเตผเดตเดฑเตเดเดณเตเด เดกเตเดธเตเดฑเตเดฑเดฟเดจเตเดทเตป เดฎเตเดฏเดฟเตฝเดฌเตเดเตเดธเตเดเดณเตเด.
#!/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
เด เดตเดฒเดเดฌเด: www.habr.com
