Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ IMAPSync ΡΠ΅ΡΠ΅Π· ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈΠΊ Ρ Π½ΡΠΆΠ½ΡΠΌ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ. ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Imapsync Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ (https://imapsync.lamiral.info/#install).
ΠΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΎΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ² ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΠΌΡ (gis.html) ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° imapsync (gis.php). ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² imap ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Fetchmail ΠΊΠ°ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Π° roundcube Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ, Ρ.ΠΊ. ΠΌΠ½ΠΎΡ Π½Π΅ Π±ΡΠ» Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ°.
Web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠ°Ρ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (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))."\n\n";
}//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
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ΠΌΡΡΠ»ΠΈΠΌ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°ΠΌ ΡΠΊΠΎΠΏΠΈΠ»ΠΎΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π·Π°ΡΠ°ΡΡΡΡ Π·Π°Π±ΠΎΡΠ»ΠΈΠ²ΠΎ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ. ΠΡΠ΅ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ, Π½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π°ΠΌΠΈ. Π Π΅ΡΠ»ΠΈ ΡΡΠΈΠΊΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ Ρ ΠΎΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. Π‘ΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅ΡΒ imapsyncΒ – ΠΏΡΠΎΡΡΠ°Ρ, Π½ΠΎ Π² ΡΠΎΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ IMAP.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ imapsync – ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π΅Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π° ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅, ΠΌΡ Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΠΎΡΠ΅ΠΌΡ? Π£ΡΠΈΠ»ΠΈΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Perl ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π·Π°ΡΠΎΡΡΡΡ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ΅Π½Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎ Π·Π°Π΄Π°ΡΠ°, ΠΏΠΎ ΡΡΡΠΈ, ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ.
ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΠ Π½Π° Linux, Π²ΠΈΡΡΡΠ°Π»ΠΊΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ· DEB-ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Debian ΠΈ Ubuntu, Ρ ΠΎΡΡ ΡΡΠΈΠ»ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΠ΅ Π΅ΠΉ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΠ Π½Π° Debian.
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΡΠΊΡΠΎΠ΅ΠΌ /etc/apt/sources.list ΠΈ ΡΠ±Π΅Π΄ΠΈΠΌΡΡ, ΡΡΠΎ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΡΠ°Π·Π΄Π΅Π» contrib, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΡΠ»Π΅
main
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ
contrib
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²:
apt update
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π° ΡΠ°ΠΉΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. ΠΠ»Ρ Debian ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
apt install \
libauthen-ntlm-perl \
libcgi-pm-perl \
libcrypt-openssl-rsa-perl \
libdata-uniqid-perl \
libencode-imaputf7-perl \
libfile-copy-recursive-perl \
libfile-tail-perl \
libio-socket-inet6-perl \
libio-socket-ssl-perl \
libio-tee-perl \
libhtml-parser-perl \
libjson-webtoken-perl \
libmail-imapclient-perl \
libparse-recdescent-perl \
libproc-processtable-perl \
libmodule-scandeps-perl \
libreadonly-perl \
libregexp-common-perl \
libsys-meminfo-perl \
libterm-readkey-perl \
libtest-mockobject-perl \
libtest-pod-perl \
libunicode-string-perl \
liburi-perl \
libwww-perl \
libtest-nowarnings-perl \
libtest-deep-perl \
libtest-warn-perl \
make \
time \
cpanminus
ΠΠΏΠ΅ΡΠ°ΡΠ»ΡΠ΅Ρ? Π‘Π°ΠΌΠΎΠ΅ Π»ΡΡΡΠ΅Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ – ΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π½Π°ΠΆΠ°ΡΡ Enter. ΠΠΎΡΠΎΠΌ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ ΡΡΠΎ “Π΄ΠΎΠ±ΡΠΎ” Π½Π° ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΊΠ°ΡΠ°Π»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ ΡΠΊΠ°ΡΠ°Π΅ΠΌ ΡΠ°ΠΌΡ ΡΡΠΈΠ»ΠΈΡΡ:
cd
wget -N https://raw.githubusercontent.com/imapsync/imapsync/master/imapsync
Π ΡΡΠ°Π·Ρ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ:
chmod +x imapsync
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π² /usr/bin, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π² ΡΡΠΎΠΌ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎΠΈΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ: ΡΠ΅ΡΠ²Π΅Ρ-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ host1, ΡΠ΅ΡΠ²Π΅Ρ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ – host2 ΠΈ Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 1 ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ, Π° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 2 – ΠΊ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, user1 ΠΈΠ»ΠΈ password2.
Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
./imapsync \
--host1 imap.yandex.ru \
--user1 user@mydomain.ru \
--password1 "Pa$$word1" \
--host2 mk-61.it-31,ru \
--user2 user@it-31.ru \
--password2 "Pa$$word1"
ΠΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠ΅Π»ΠΎ ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ. Π‘Π°ΠΌΠΈ ΠΎΠΏΡΠΈΠΈ Π² ΠΎΡΠΎΠ±ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ, ΡΠ½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Ρ ΠΎΡΡ-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌΡ ΡΡΠΈΠΊΡ Π½Π° Π½Π΅ΠΌ, Π·Π°ΡΠ΅ΠΌ Ρ ΠΎΡΡ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΠΏΠΎΡΡΡ.
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΊΠΎΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π»ΠΎΠ³ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΈΡΠ΅ΠΌ.
Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ. Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Ρ Π―Π½Π΄Π΅ΠΊΡΠ° Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΠΎΠΊΠΎΠ»ΠΎ 2,5 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΡΠΈ ΡΡΠΎΠΌ imapsync – ΡΠΌΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ°, ΠΎΠ½Π° Π·Π°Π±ΠΎΡΠ»ΠΈΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ ΠΈ ΡΡΠ°ΡΡΡ ΠΏΠΈΡΠ΅ΠΌ. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΠΈΡΡΠΌΠ° Π±ΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠ°ΡΠΎΠΌ ΡΡΠΈΠΊΠ΅, ΡΠΎ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π½ΡΡ Π½Π΅ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΈΡΡΠΌΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ»ΠΎ:
Π‘ΡΠ°Π»ΠΎ:
Π ΡΠ΅Π»ΠΎΠΌ – ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ, Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ»ΠΈ ΡΡΠΈΠΊ 1:1.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡΠΊΡΠ΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠ°ΠΏΠΊΠ° LOG_imapsync, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π»ΠΎΠ³ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°. Π‘ΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡ ΠΈΠ·ΡΡΠΈΡΡ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΠ· ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ –exclude, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ±Π΅ΡΠ΅ΠΌ ΠΈΠ· ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΏΠΊΡ Π‘ΠΏΠ°ΠΌ ΠΈ ΠΠΎΡΠ·ΠΈΠ½Ρ:
--exclude 'Spam|Trash'
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ, ΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΡΠΈΡ:
--f1f2 Outbox=Sent
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Outbox ΡΡΠΈΠΊΠ°-ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΠ°ΠΏΠΊΡ Sent ΡΡΠΈΠΊΠ°-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°.
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ° ΠΏΠΈΡΠ΅ΠΌ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΊΠΎΡΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΡΠ΅ΠΊΡΡΠΈΠΉ Π³ΠΎΠ΄, Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ:
--maxage 365
Π ΠΈΡΠΎΠ³Π΅ Π±ΡΠ΄ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΡΡΠΌΠ° Π½Π΅ ΡΡΠ°ΡΡΠ΅ 365 Π΄Π½Π΅ΠΉ.
Π ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ? Π ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΉ, Π°ΡΡ ΠΈΠ²Π½ΡΠΉ ΡΡΠΈΠΊ, Π² ΡΡΠΎΠΌ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π΄ΡΡΠ³Π°Ρ ΠΎΠΏΡΠΈΡ:
--minage 365
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΡΡΠΌΠ° Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ ΡΡΠ°ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΈ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΠ½ΠΈ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π:
--maxage 730 --minage 365
Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Ρ ΠΏΠΈΡΡΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΡΠΎΡΠ»ΡΠΉ Π³ΠΎΠ΄ (Π½Π΅ ΡΡΠ°ΡΡΠ΅ Π΄Π²ΡΡ Π»Π΅Ρ ΠΈ Π½Π΅ ΠΌΠΎΠ»ΠΎΠΆΠ΅ Π³ΠΎΠ΄Π°).
Π Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ?
--maxage 365 --minage 730
Π’ΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΏΠΈΡΡΠΌΠ° Π·Π° ΡΠ΅ΠΊΡΡΠΈΠΉ Π³ΠΎΠ΄, ΠΈ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠ΅ Π΄Π²ΡΡ Π»Π΅Ρ (Π½Π΅ ΡΡΠ°ΡΡΠ΅ 1 Π³ΠΎΠ΄Π° ΠΈ Π½Π΅ ΠΌΠΎΠ»ΠΎΠΆΠ΅ 2 Π»Π΅Ρ).
ΠΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΡΠΈΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Ρ Π½Π΅ΠΉ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ. Π’Π°ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ ΡΠ΅ΡΠ΅ΠΏΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ»ΡΠΆΠ± ΠΈ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
Π‘ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, Π½ΠΎ ΠΊΠ°ΠΊ Π±ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΈΠΊΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΈΠΏΡΠ°:
#!/bin/sh
{ while IFS=';' read h1 u1 p1 h2 u2 p2 fake
do
imapsync --host1 "$h1" --user1 "$u1" --password1 "$p1" \
--host2 "$h2" --user2 "$u2" --password2 "$p2" "$@"
done
} < file.txt
ΠΠ°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π½Π΅ Π±Π»Π΅ΡΠ΅Ρ ΠΈΠ·ΡΡΠΊΠ°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΎΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΡΡΠ΅ΡΠΊΠ°. ΠΠ° Π΅Π³ΠΎ Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» file.txt, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠΌ ΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±Π΅ΡΡΡΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ·Π»ΠΎΠ² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. Π‘Π°ΠΌ ΡΠ°ΠΉΠ» file.txt Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΡΠΎΠΊΠΈ:
host1;user1_1;password11_1;host2;user2_1;password2_1;
host1;user1_2;password11_2;host2;user2_2;password2_2;
host1;user1_3;password11_3;host2;user2_3;password2_3;
host1;user1_4;password11_4;host2;user2_4;password2_4;
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΡΠ»Π΅ “$@” ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ°, ΡΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π²ΠΎΠΉΠ΄ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $@.
ΠΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ. Π‘ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π²Β Wiki Zimbra. ΠΡ ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² Linux Π½Π΅Ρ Π΄ΠΎΠ³ΠΌ ΠΈ Π΅Π΄ΠΈΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΠΌ.
#!/bin/cat # $Id: INSTALL.Ubuntu.txt,v 1.23 2022/10/13 00:16:33 gilles Exp gilles $ This documentation is also located online at https://imapsync.lamiral.info/INSTALL.d/ https://imapsync.lamiral.info/INSTALL.d/INSTALL.Ubuntu.txt ======================================================================= Installing imapsync on Ubuntu 16.04 or higher ======================================================================= Here is the command to install imapsync dependencies, you need root privilege to run them. This command installs standard Ubuntu packages: sudo apt-get install \ libauthen-ntlm-perl \ libclass-load-perl \ libcrypt-openssl-rsa-perl \ libcrypt-ssleay-perl \ libdata-uniqid-perl \ libdigest-hmac-perl \ libdist-checkconflicts-perl \ libencode-imaputf7-perl \ libfile-copy-recursive-perl \ libfile-tail-perl \ libio-compress-perl \ libio-socket-inet6-perl \ libio-socket-ssl-perl \ libio-tee-perl \ libjson-webtoken-perl \ libmail-imapclient-perl \ libmodule-scandeps-perl \ libnet-dbus-perl \ libnet-ssleay-perl \ libpar-packer-perl \ libproc-processtable-perl \ libreadonly-perl \ libregexp-common-perl \ libsys-meminfo-perl \ libterm-readkey-perl \ libtest-fatal-perl \ libtest-mock-guard-perl \ libtest-mockobject-perl \ libtest-pod-perl \ libtest-requires-perl \ libtest-simple-perl \ libunicode-string-perl \ liburi-perl \ libtest-nowarnings-perl \ libtest-deep-perl \ libtest-warn-perl \ make \ time \ cpanminus In case you want to update the Perl module Mail::IMAPClient, a major module for imapsync, the following command installs it "manually": sudo cpanm Mail::IMAPClient After installing the dependencies, imapsync should be working. You don't have to be root to test and use imapsync. Take the compressed tarball called imapsync-2.xxx.tgz where 2.xxx is the version number. Untar the tarball where you want: cd tar xzvf imapsync-2.xxx.tgz Go into the directory imapsync-2.xxx cd imapsync-2.xxx A dependencies test that shows also the basic example: ./imapsync A live test showing imapsync job: ./imapsync --testslive Now the install command (need root priviledges again): cp imapsync /usr/bin/ That's finished for the installation part. You can use imapsync. Now go to read http://imapsync.lamiral.info/#doc start with the tutorial. ======================================================================= After installing the dependencies ======================================================================= You don't have to be root to test and use imapsync. Take imapsync either on github: wget -N https://raw.githubusercontent.com/imapsync/imapsync/master/imapsync or be on the cutting edge with the upstream site: wget -N https://imapsync.lamiral.info/imapsync Add execution permission to the downloaded script: chmod +x imapsync Check the dependencies and print also the basic example: ./imapsync Perform a live test showing imapsync job: ./imapsync --testslive Now install imapsync on the system (need root priviledges again): cp imapsync /usr/bin/ That's finished for the installation part. You can now use imapsync without knowing where it is located on the system: imapsync Now go read the menu http://imapsync.lamiral.info/#doc and start with the tutorial https://imapsync.lamiral.info/doc/TUTORIAL_Unix.html Feedback is welcome! ======================================================================= ======================================================================= ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» Β«mails.csvΒ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄: old_login|old_pass|new_login|new_pass| ΠΠ΄Π΅ΡΡ Β«old_loginΒ» ΠΈ Β«old_passΒ» β Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ°ΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π° Β«new_loginΒ» ΠΈ Β«new_passΒ» β Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΌΠΈΠ³ΡΠΈΡΡΠ΅ΡΠ΅ Π² Google Suite ΡΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΉΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ -> Β«ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΒ» -> Β«ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΠΎΠΉΒ» ΠΈ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠ΅ Π½Π°Π΄ΡΠΆΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΠΎΠΉ. ΠΠ΅Π· ΡΡΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ IMAP. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΡΠ°ΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ imapsync Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ Π»ΠΈΡΡΠΈΠ½Π³ ΡΠΊΡΠΈΠΏΡΠ°: #!/bin/bash cd `dirname $0` for line in `cat mails.csv | grep -v ^#`; do M_USER=`echo ${line} | cut -d '|' -f1` M_PASS=`echo ${line} | cut -d '|' -f2` N_USER=`echo ${line} | cut -d '|' -f3` N_PASS=`echo ${line} | cut -d '|' -f4` echo "Processing ${M_USER}..." ./imapsync \ --host1 mail.company.com --user1 ${M_USER} --password1 ${M_PASS} \ --host2 imap.gmail.com:993 --user2 ${N_USER} --password2 ${N_PASS} --ssl2 if [ $? -ne "0" ]; then echo ${M_USER} >> mail_errors fi done ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π² ΡΠ°ΠΉΠ» Β«mail_errorsΒ» Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π»ΠΎΠ³ΠΈΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΠΎΡΡΡ Π½Π΅ ΡΠ΄Π°Π»ΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Π»ΠΈΠ±ΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΡΠΌΠΎΠΌ ΠΏΠΎΡΡΡ (ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ²ΠΎΡΡ), Π»ΠΈΠ±ΠΎ Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΏΠ°ΡΠΎΠ»ΡΡ . ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠΈΠΊΠΎΠ² ΠΈ Ρ ΠΎΡΡ Π±Ρ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° ΡΡΠΈΠΊΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°ΡΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»ΡΡ). Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡΡ mailsync ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² GMail ΠΈ MS Exchange. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠΈΠ»Ρ ΡΡΠ΄Π° ΠΏΡΠΈΡΠΈΠ½ Ρ Π°Π²ΡΠΎΡΠ° ΡΡΠΈΡ ΡΡΡΠΎΠΊ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π».
Π‘Π²Π΅ΠΆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ