inital import

This commit is contained in:
2025-12-11 17:07:30 +01:00
commit 40354e492d
6 changed files with 23363 additions and 0 deletions

View File

@@ -0,0 +1,375 @@
<!DOCTYPE html>
<!-- $Id: imapsync_form_extra.html,v 1.4 2019/11/07 11:16:25 gilles Exp gilles $ -->
<html lang="en" id="top">
<head>
<title>Imapsync online</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="imapsync_form.css">
<link rel="license" href="https://imapsync.lamiral.info/NOLIMIT">
<noscript>
<link rel="stylesheet" href="noscript.css">
</noscript>
</head>
<body>
<div class="scripton">
<!-- will appear if some tests fail -->
<pre id="tests" class="collapse"></pre>
<!-- hidden stuff that must exit for the tests -->
<div class="d-none">
<input type="checkbox" id="test_checkbox">
<input type="text" id="test_text">
<input type="radio" id="test_radio1" name="test_radio" value="first">
<input type="radio" id="test_radio2" name="test_radio" value="second">
</div>
</div>
<div class="container">
<div class="row">
<div class="text-center">
<a href="https://imapsync.lamiral.info/">
<img alt="Imapsync home" title="Imapsync home page"
src="https://imapsync.lamiral.info/X/logo_imapsync_Xn.png" height="38" width="60">
</a>
<a href="#top" title="Top of the page" class="btn btn-info " role="button">Top</a>
<a href="#bottom" title="Bottom of the page" class="btn btn-info active" role="button">Bottom</a>
</div>
</div>
<div class="row mb-3">
<div class="col">
<h1 class="text-center">Imapsync online</h1>
<p class="text-center"> <strong>Copy</strong>/synchronize a <strong>complete</strong> mailbox to
another,
without <strong>duplicates!</strong></p>
</div>
</div>
<form id="form" action="/cgi-bin/imapsync" method="post" autocomplete="on">
<div id="form_row" class="row h-100">
<div id="account1" class="col col-md-5 order-0 py-3">
<fieldset>
<legend class="text-center fs-2 text-light">IMAP source mailbox</legend>
<label for="user1" class="form-check-label text-light">Login</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-person"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="It is usually an email address or its left part before @" type="text"
class="form-control input-lg" id="user1" name="user1" tabindex="1"
placeholder="Enter login name">
</div>
<label class="form-check-label text-light" for="password1">Password</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-lock"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="Passwords are not stored on the server" type="password"
class="form-control input-lg" id="password1" name="password1" tabindex="2"
placeholder="Enter password">
</div>
<div class="text-end">
<label class="form-check-label text-light" for="showpassword1">
show password
</label>
<input class="form-check-input" type="checkbox" id="showpassword1">
</div>
<label for="host1" class="form-check-label text-light">Server</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-cloudy"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="IMAP transfers are done with encryption if the servers support it."
list="servers1" type="text" class="form-control input-lg" id="host1" name="host1"
tabindex="3" placeholder="Enter imap source server name or IP address">
<datalist id="servers1">
<option value="imap.gmail.com">
<option value="outlook.office365.com">
<option value="imap.mail.yahoo.com">
</datalist>
</div>
<div class="form-group form-check collapse extra_param">
<input class="form-check-input" data-toggle="tooltip" data-placement="bottom"
title="Be careful with this option" type="checkbox" id="delete1" name="delete1">
<label class="form-check-label text-light" for="delete1">Move sync. Deletes messages on
source
mailbox after a successful transfer.</label>
</div>
<div class="form-group collapse extra_param">
<label for="subfolder1" class="form-check-label text-light"> Sub-folder</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-folder2-open"></i></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="A subfolder where all the source mailbox comes from." type="text"
class="form-control input-lg" id="subfolder1" name="subfolder1"
placeholder="Enter sub-folder name">
</div>
</div>
</fieldset>
</div>
<div id="parameters" class="col col-md-2 order-2 order-lg-1 d-flex justify-content-between flex-column">
<div class="form-check">
<label class="form-check-label" for="dry">Dry run.</label>
<input class="form-check-input" data-toggle="tooltip" data-placement="bottom"
title="Shows what would be done without really doing it." type="checkbox" id="dry"
name="dry">
</div>
<div class="form-check">
<label class="form-check-label" for="justlogin">Login only.</label>
<input class="form-check-input" data-toggle="tooltip" data-placement="bottom"
title="Checks credentials without syncing anything." type="checkbox" id="justlogin"
name="justlogin">
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="justfoldersizes">Just folders sizes.</label>
<input class="form-check-input" data-toggle="tooltip" data-placement="bottom"
title="Shows folders sizes and exits." type="checkbox" id="justfoldersizes"
name="justfoldersizes">
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="justfolders">Folders only.</label>
<input class="form-check-input" data-toggle="tooltip" data-placement="bottom"
title="Just create the folder hierarchy, messages are not synced." type="checkbox"
id="justfolders" name="justfolders">
</label>
</div>
<div id="button_extra_param" class="text-center scripton">
<button type="button" class="btn btn-primary btn-block" data-bs-toggle="collapse"
data-bs-target=".extra_param" aria-expanded="false" aria-controls="extra_param">
Show / Hide extra parameters</button>
</div>
<div id="button_swap" class="text-center scripton">
<button type="button" class="btn btn-primary btn-block" id="swap">
Swap Source <i class="bi bi-arrow-left-right"></i> Destination
</button>
</div>
</div>
<div id="account2" class="col col-md-5 order-1 order-lg-2 py-3">
<fieldset>
<legend class="text-center h2 text-light">IMAP destination mailbox</legend>
<label for="user2" class="form-check-label text-light">Login</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-person"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="It is usually an email address or its left part before @" type="text"
class="form-control input-lg" id="user2" name="user2" tabindex="6"
placeholder="Enter login name">
</div>
<label for="password2" class="form-check-label text-light">Password</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-lock"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="Passwords are not stored on the server" type="password"
class="form-control input-lg" id="password2" name="password2" tabindex="7"
placeholder="Enter password">
</div>
<div class="text-end">
<label class="form-check-label text-light" for="showpassword2">
show password
</label>
<input class="form-check-input" type="checkbox" id="showpassword2">
</div>
<label for="host2" class="form-check-label text-light">Server</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-cloudy"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="IMAP transfers are done with encryption if the servers support it."
list="servers2" type="text" class="form-control input-lg" id="host2" name="host2"
tabindex="8" placeholder="Enter imap destination server name or IP address">
<datalist id="servers2">
<option value="imap.gmail.com">
<option value="outlook.office365.com">
<option value="imap.mail.yahoo.com">
</datalist>
</div>
<!-- -->
<div class="form-group form-check collapse extra_param">
<input class="form-check-input" data-toggle="tooltip" data-placement="bottom"
title="Be careful with this option" type="checkbox" id="delete2" name="delete2"
tabindex="9">
<label class="form-check-label text-light" for="delete2">Strict sync. Deletes
messages on destination mailbox that are not at the source mailbox. </label>
</div>
<div class="form-group collapse extra_param" id="extra_subfolder2">
<label for="subfolder2" class="form-check-label text-light">Sub-folder</label>
<div class="input-group form-group">
<span class="input-group-text"><i class="bi bi-folder2-open"></i></span>
<input data-toggle="tooltip" data-placement="bottom"
title="A subfolder where all the source mailbox will go." type="text"
class="form-control input-lg" id="subfolder2" name="subfolder2"
placeholder="Enter sub-folder name">
</div>
</div>
<!-- -->
<div>
<br>
</div>
</fieldset>
</div>
</div>
<input type="hidden" name="automap" value="on">
<input type="hidden" name="addheader" value="on">
<!-- -#->
<input type="hidden" name="simulong" value="360">
<!-#- -->
<a id="buttons"></a>
<hr>
<!-- Classical button to go to the log only -->
<noscript>
<div class="row">
<div class="col-sm-12 padd0">
<button type="submit" class="btn btn-success btn-lg center-block btn-block">Go sync!</button>
</div>
</div>
</noscript>
<!-- Javascript buttons using xhr -->
<div class="row scripton">
<div class="col-sm-6 padd0">
<button id="bt-sync" type="button" class="btn btn-success btn-lg center-block btn-block"
tabindex="11" data-toggle="tooltip" data-placement="top"
title="Launch the sync! You can abort the sync with the red Abort button nearby or by closing the tab/window.">
Sync or resync!<br>
<i class="bi bi-envelope"></i>
<i class="bi bi-arrow-right"></i>
<i class="bi bi-envelope"></i>
</button>
</div>
<div class="col-sm-6 padd0">
<button id="bt-abort" type="button" class="btn btn-danger btn-lg center-block btn-block"
tabindex="12" data-toggle="tooltip" data-placement="top"
title="Abort the sync! You can restart the sync later, no duplicates should happen.">
Abort!<br>
<i class="bi bi-scissors"></i>
</button>
</div>
</div>
</form>
<div class="row scripton" id="consoles">
<pre id="progress-txt">ETA: Estimation Time of Arrival</pre>
<div class="progress progress-stacked">
<div id="progress-bar-done" class="progress-bar bg-success" role="progressbar" aria-valuenow="0">
Done
</div>
<div id="progress-bar-left" class="progress-bar bg-info" role="progressbar" aria-valuenow="100">
Todo
</div>
</div>
<div class="col-sm-6 well">
<h2 class="text-center">Console of imapsync launch</h2>
<pre id="console">
</pre>
<a id="link_to_bottom" href="#bottom">Bottom of imapsync log</a>
</div>
<div class="col-sm-6 well">
<h2 class="text-center">Console of abort</h2>
<pre id="abort">
</pre>
</div>
</div>
</div>
<div class="container overflow-y-scroll vh-25">
<h2 class="text-center scripton">Log of imapsync run</h2>
<pre id="output" class="scripton"></pre>
<a id="bottom"></a>
<hr>
<p class="text-center">Feel free to contact
<strong><a href="https://imapsync.lamiral.info/#AUTHOR" target="_blank">Gilles LAMIRAL</a></strong>
</p>
</div>
<div class="container-fluid">
<div class="row">
<div class="text-center">
<a href="https://imapsync.lamiral.info/">
<img alt="Imapsync home page" src="https://imapsync.lamiral.info/X/logo_imapsync_Xn.png" height="38"
width="60">
</a>
<a href="#top" title="Top of the page" class="btn btn-info " role="button">Top</a>
<a href="#bottom" title="Bottom of the page" class="btn btn-info active" role="button">Bottom</a>
<p>Terms and conditions for anything: <a href="https://imapsync.lamiral.info/LICENSE">No limits to do
anything with this work and this license!</a></p>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
crossorigin="anonymous"></script>
<script src="imapsync_form.js">
</script>
</body>
</html>