рдпреЛ рдЖрд▓реЗрдЦрд▓реЗ 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
