แแก แกแขแแขแแ แแแแแฎแแแแแก, แแฃ แ แแแแ แฃแแแ แแแแแแขแแแแ แคแแกแขแ แกแฎแแแแแกแฎแแ แกแแ แแแ แแแก แจแแ แแก IMAPSync แแ แแแ แแแแก แแแแแงแแแแแแ แแ แแแแขแแฃแแ แแแแฎแแแ แแแแแก แแแขแแ แคแแแกแแก แกแแจแฃแแแแแแ.
แแแแแจแแฃแแแแแก แกแแ แแแ แแ แฃแแแ แแฅแแแแแ แงแฃแแ แกแแญแแ แ แจแแกแแแแกแ แแ แแแ แแแแ. Imapsync-แแก แแแแแงแแแแแแแแ แฃแแแ แแแแแแกแขแแแแ แแ (https://imapsync.lamiral.info/#install).
แแแแแแแแ แแ แแแแแแแชแแ แแ แซแแแแแก แแแแแแจแ แแแแแแแก แแแแฅแขแ แแแฃแแ แคแแกแขแแก แแแ แแแแแแก แแแแแงแแแแแแก แกแแ แแแขแจแ, แแแแ แแชแแแก แแ แแชแแกแ แแแแแแแ แแแฃแแแ แแแแฎแแแ แแแแแแ. แแ แแแแแแ แจแแแฃแจแแแแแฃแแแ แแแ-แแแขแแ แคแแแกแ, แ แแแแแแช แจแแแแแแ แคแแ แแแก แแแแฃแแแกแแแ (gis.html) แแ imapsync แกแแ แแแขแแก แแแแจแแแแ แแแแฃแแแกแแแ (gis.php). แจแแแกแแแ แกแแ แแแ แแแ IMAP-แแก แแแขแแแแขแแแแชแแ แจแแกแแซแแแแแแแ แกแแคแแกแขแ แงแฃแแแก แกแแฎแแแแก แแแแแก แจแแแแแ แกแแก แแแแแแแแ. Fetchmail-แแก Roundcube แแแแแแแขแแ แแแแแงแแแแแ แแ แแแแแฎแแแแแ, แ แแแแแ แแ แกแแแแแฎแแก แแแขแแแฃแ แ แแ แแแแแแแแแแ แฃแแ แแแแแแแ แแแ แแแแแแ.
แแแ แแแขแแ แคแแแกแ แจแแแแแแ แแแแแแแกแแแ, แกแแแแช แแ แแก แแแคแแ แแแชแแ แกแแคแแกแขแ แงแฃแแแแแก แจแแกแแฎแแ, แแแแ แแชแแแก แจแแกแ แฃแแแแแก แแแแแแแแแแ แแ แ แแ แกแแแแแขแ แแแ แฆแแแแแแแ (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
