Bygga en epost migrering verktyg!

Trädvy Permalänk
Medlem
Plats
Rättvik
Registrerad
Maj 2011

Bygga en epost migrering verktyg!

Hej jag håller på att bygga en epost migrerings verktyg men jag har kört fast.
Jag bygger det i PHP.

Men stora problemet är att jag har lyckats logga in och se map strukturen men jag kommer inte vidare därifrån. Jag har lyckats läsa mailen med curl cli men jag har ingen aning hur man ska konvertera det commandot till PHP-code.

Är det någon som är duktigt på det här?

CPU -->I7-3820
GPU -->2 x Nvidia680 GTX
OS --> Fedora

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Maj 2004

PHP har en curl-funktion, kan behöva slå på den i php.ini, men funkar fint:

http://php.net/manual/en/book.curl.php

Trädvy Permalänk
Medlem
Plats
Rättvik
Registrerad
Maj 2011

[PHP/JS] Bygger en Email flytt

Jag har kört fast helt och hållet just nu.
Så jag vänder mig till er. Jag använder imapsync i backgrunden. så jag kallar på Imapsync med exec. sen har jag ett javascript som kollar logfilen efter raden där det står hurmånga mail det är kvar. sen skriver det ut det på sidan.

Så här ser min index.php ut.

<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="UTF-8"> <title>Inleeds Epostflytt</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <link rel="shortcut icon" href="favicon.ico"/> <script src="js/jquery-3.1.1.js"></script> </head> <body> <div class="container-fluid"> <div class="container"> <br> <div class="row"> <div class="col-sm-3"></div> <div class="col-sm-6"><img src="logo.png" class="img-responsive center-block" alt="Responsive image"></div> </div> <br> <div class="row"> <div class="col-sm-2"></div> <div class="col-sm-8" ><p class="center-block text-center">Den här tjänsten kan du använda för att flytta alla dina email från den gamla servern till den nya mailservern som du använder! Andvänds på egen risk. Vi garanterar inte att alla emails flyttas. Så läs loggen efter så du ser om den misslyckades med något email</p></div> </div> <br> <div class="row"> </div> <?php if(isset($_POST['val'])) { ?> <div class="row"> <div class="col-sm-2"></div> <div class="col-sm-8" ><p id="done" class="center-block text-center"> Moving Email! I have <b id="demo">99999</b> left to move </p></div> </div> <br> <div class="row"> </div> <?php $fserver = $_POST['fserver']; $fuser = $_POST['fuser']; $fpass = $_POST['fpass']; $tserver = $_POST['tserver']; $tuser = $_POST['tuser']; $tpass = $_POST['tpass']; $post = $_POST['val']; function status($pid){ $command = 'ps -p '.$pid; exec($command, $op); if (!isset($op[1]))return false; else return true; } if($post == "move") { ?><script src="js/test.js"></script><?php if ($kbk == 1){ exec('echo 1 > kor.txt'); $test = exec('imapsync \ --debugssl 0 \ --host1 '.escapeshellarg($fserver).' --tls1 --nolog\ --user1 '.escapeshellarg($fuser).' \ --password1 '.escapeshellarg($fpass).' \ --host2 '.escapeshellarg($tserver).' --tls2 \ --user2 '.escapeshellarg($tuser).' \ --password2 '.escapeshellarg($tpass).' \ --no-modulesversion > log/'.escapeshellarg($tuser).escapeshellarg($tserver).' & echo $! ', $retval); } } elseif ($post == "log") { ?> <a href="log/<?php echo $tuser.$tserver;?>">Här är din log fil</a> <?php } } else { ?> <form class="form-horizontal" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" > <div class="form-group"> <label for="inputFmailserver" class="col-xs-4 col-sm-4 control-label">Server</label> <div class="col-xs-8 col-sm-5"> <input type="text" class="form-control" id="inputFmailserver" placeholder="ServerAddress" name="fserver"> </div> </div> <div class="form-group"> <label for="inputFemail" class="col-xs-4 col-sm-4 control-label">Användare</label> <div class="col-xs-8 col-sm-5"> <input type="email" class="form-control" id="inputFemail" placeholder="User" name="fuser"> </div> </div> <div class="form-group"> <label for="inputFpass" class="col-xs-4 col-sm-4 control-label">Lösenord</label> <div class="col-xs-8 col-sm-5"> <input type="password" class="form-control" id="inputFpass" placeholder="Password" name="fpass"> </div> </div> <div class="row"> <div class="col-xs-4 col-sm-3"></div> <div class="col-xs-8 col-sm-6"><img src="img/arrow.png" class="img-responsive center-block" alt="Responsive image"></div> </div> <br> <div class="form-group"> <label for="inputTmailserver" class="col-xs-4 col-sm-4 control-label">Server</label> <div class="col-xs-8 col-sm-5"> <input type="text" class="form-control" id="inputTmailserver" placeholder="ServerAddress" name="tserver"> </div> </div> <div class="form-group"> <label for="inputTemail" class="col-xs-4 col-sm-4 control-label">Användare</label> <div class="col-xs-8 col-sm-5"> <input type="email" class="form-control" id="inputTemail" placeholder="User" name="tuser"> </div> </div> <div class="form-group"> <label for="inputTpass" class="col-xs-4 col-sm-4 control-label">Lösenord</label> <div class="col-xs-8 col-sm-5"> <input type="password" class="form-control" id="inputTpass" placeholder="Password" name="tpass"> </div> </div> <div class="col-sm-offset-2 col-sm-8"> <p class="text-center">Det kan ta en stund! Så refresha inte sidan! Skulle du eventuelt tappa din internet connection så kör inte igen för att den flyttar i backgrunden tyvär kommer du inte få ut en log. </p> </div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-6"> <div class="contain"> <button name="val" type="submit" value="move" class="btn btn-default btn-left">Flytta Nu!</button> <button name="val" type="submit" value="log" class="btn btn-default btn-right">hämta loggen</button> </div> </div> </div> </form></div> </div> <?php } ?> </body> </html>

var test ="msg INBOX/1 {18449} copied to INBOX/2367 9.59 msgs/s 195.998 KiB/s 3.073 MiB copied ETA: Fri Mar 10 17:31:23 2017 169 s 1623/1777 msgs left" var arrayofspace= test.split(" "); var arrayOfnumber = arrayofspace[38].split("/"); // arrayOfLines is array where every element is string of one line var testing; var tomte = 1; var tomte1; var tomte2 = [1]; var tomte3 = 1; var test1213; $(document).ready(function() { test1213 = setInterval("ajaxd()",1000); }); function ajaxd() { $.ajax('log/test@example.com', { dataType: 'text', async: false, cache: false, success: function (data) { testing = data.split("\n"); for(var i=0; i<testing.length; i++) { msg = testing[i].indexOf("msg"); exit = testing[i].indexOf("Exiting"); if (msg == "0") { tomte = testing[i].split("s"); tomte1 = tomte[6].split(" "); tomte2 = tomte1[2].split("/"); console.log(tomte2[0]); document.getElementById("demo").innerHTML = tomte2[0]; } if (exit == 0){ tomte3 = 0; console.log(exit); } } }, }); function stopInterval(){ clearInterval(test1213); document.getElementById("done").innerHTML = "I am done! Go and Check your new mail"; } if (tomte3 == 0){ clearInterval(test1213); document.getElementById("done").innerHTML = "I am done! Go and Check your new mail"; } }

då är min fråga hur ska jag göra. Jag har löst när den väl har klarat av allt så kör den exiting i log filen. Men Skirver man fel lösen så slutar bara imapsync utan att skicka ut något fel medelande. Så Det jag undrar hur jag ska göra för att medela javascriptet att sluta upp med loopen.

CPU -->I7-3820
GPU -->2 x Nvidia680 GTX
OS --> Fedora

Trädvy Permalänk
Forumledare
Kent
Registrerad
Jan 2005

@Sandia *Trådar sammanfogade*

Jag har sammanfogat dina trådar då vi ej tillåter korspostning (flera trådar om samma ämne). Det går alldeles utmärkt att fortsätta diskussionen i denna tråden.

Citat:

§3.3 Det är inte tillåtet att skapa flera trådar om samma ämne (så kallad korspostning). Detta gäller oavsett om trådarna placeras i samma forumdel eller i olika forumdelar. Om en moderator har låst en tråd är det inte tillåtet att skapa en ny tråd om samma ämne. Regeln finns för att alla ska få samma chans att få sina trådar uppmärksammade och för att forumet ska bli så överskådligt som möjligt.

/moderator

Synpunkter eller frågor gällande modereringen? Då kan du kontakta mig eller moderatorerna.
Ursäkta min stavning, jag är dansk

Trädvy Permalänk
Medlem
Plats
Rättvik
Registrerad
Maj 2011
Skrivet av screamin-daemon:

@Sandia *Trådar sammanfogade*

Jag har sammanfogat dina trådar då vi ej tillåter korspostning (flera trådar om samma ämne). Det går alldeles utmärkt att fortsätta diskussionen i denna tråden.
/moderator

Förlåt hade glömt av att jag skapade den.

CPU -->I7-3820
GPU -->2 x Nvidia680 GTX
OS --> Fedora