هي آرٽيڪل ڏسندو ته مختلف سرورن جي وچ ۾ ميل ڪيئن منتقل ڪجي 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
