āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĻāĻŋāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāύā§āĻāĻžāϰāĻĢā§āϏā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ 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
