Merge pull request #46 from greyhatsec-au/list-accounts
Add feature to list current accounts with mail and load inbox
This commit is contained in:
commit
9b039af758
|
@ -28,6 +28,11 @@ else
|
||||||
echo "DOMAINS=localhost" >> /var/www/opentrashmail/config.ini
|
echo "DOMAINS=localhost" >> /var/www/opentrashmail/config.ini
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$SHOW_ACCOUNT_LIST" != "" ]; then
|
||||||
|
echo "SHOW_ACCOUNT_LIST=$SHOW_ACCOUNT_LIST" >> /var/www/opentrashmail/config.ini
|
||||||
|
echo " [i] Set show account list to: $SHOW_ACCOUNT_LIST"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$ADMIN" != "" ]; then
|
if [ "$ADMIN" != "" ]; then
|
||||||
echo "ADMIN=$ADMIN" >> /var/www/opentrashmail/config.ini
|
echo "ADMIN=$ADMIN" >> /var/www/opentrashmail/config.ini
|
||||||
echo " [i] Set admin to: $ADMIN"
|
echo " [i] Set admin to: $ADMIN"
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
; pro tip: Use a wildcard domain like *.yourdomain.com to auto-generate the subdomains (you'll need to add a wildcard dns record too)
|
; pro tip: Use a wildcard domain like *.yourdomain.com to auto-generate the subdomains (you'll need to add a wildcard dns record too)
|
||||||
DOMAINS=yourdomain,sub.yourdomain,*.mydom.com
|
DOMAINS=yourdomain,sub.yourdomain,*.mydom.com
|
||||||
|
|
||||||
|
; Enable to show a list of all existing accounts with mail
|
||||||
|
;SHOW_ACCOUNT_LIST=true
|
||||||
|
|
||||||
; Enter the admin email address. If you choose this email on the website you will see all emails from all users
|
; Enter the admin email address. If you choose this email on the website you will see all emails from all users
|
||||||
; The email doesn't really have to exist or have mail but must look like an email address
|
; The email doesn't really have to exist or have mail but must look like an email address
|
||||||
;ADMIN=some@random.email
|
;ADMIN=some@random.email
|
||||||
|
|
11
web/api.php
11
web/api.php
|
@ -141,6 +141,17 @@ switch($action)
|
||||||
$o = array('status'=>'ok','emails'=>$data);
|
$o = array('status'=>'ok','emails'=>$data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'show-list':
|
||||||
|
$settings = loadSettings();
|
||||||
|
$o = $settings['SHOW_ACCOUNT_LIST'];
|
||||||
|
break;
|
||||||
|
case 'list-addresses':
|
||||||
|
$settings = loadSettings();
|
||||||
|
$o = array('status'=>'ok','addresses'=>[]);
|
||||||
|
|
||||||
|
if ($settings['SHOW_ACCOUNT_LIST'])
|
||||||
|
$o['addresses'] = listEmailAdresses();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode($o);
|
echo json_encode($o);
|
||||||
|
|
|
@ -25,7 +25,8 @@
|
||||||
<form class="form-inline my-2 my-lg-0">
|
<form class="form-inline my-2 my-lg-0">
|
||||||
<input class="form-control mr-sm-2" id="email" type="email" placeholder="email address" aria-label="email address">
|
<input class="form-control mr-sm-2" id="email" type="email" placeholder="email address" aria-label="email address">
|
||||||
<button onClick="accessAccount()" class="btn btn-secondary my-2 my-sm-0"><i class="fas fa-arrow-left"></i><i class="fas fa-envelope"></i> Access account</button>
|
<button onClick="accessAccount()" class="btn btn-secondary my-2 my-sm-0"><i class="fas fa-arrow-left"></i><i class="fas fa-envelope"></i> Access account</button>
|
||||||
<button onClick="generateAccount()" id="btn-gen-random" class="btn btn-secondary my-2 my-sm-0"><i class="fas fa-random"></i> Generate random</button>
|
<button onClick="generateAccount()" id="btn-gen-random" class="btn btn-secondary my-2 my-sm-0"><i class="fas fa-random"></i> Generate random</button>
|
||||||
|
<button onClick="listAddresses(event)" id="btn-list-addresses" class="btn btn-secondary my-2 my-sm-0" style="display:none;"><i class="fas fa-list"></i> List accounts</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -16,6 +16,11 @@ $( document ).ready(function() {
|
||||||
domains = data;
|
domains = data;
|
||||||
else $("#btn-gen-random").hide();
|
else $("#btn-gen-random").hide();
|
||||||
},"json")
|
},"json")
|
||||||
|
|
||||||
|
$.get("api.php?a=show-list",function(data){
|
||||||
|
if (data)
|
||||||
|
$("#btn-list-addresses").show();
|
||||||
|
},"json")
|
||||||
});
|
});
|
||||||
|
|
||||||
function loadMail(email,id)
|
function loadMail(email,id)
|
||||||
|
@ -49,6 +54,25 @@ function renderEmail(email,id,data)
|
||||||
')
|
')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listAddresses(e)
|
||||||
|
{
|
||||||
|
clearInterval(timer);
|
||||||
|
e = e || window.event;
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
$.get("api.php?a=list-addresses", function(data) {
|
||||||
|
if (data.status == "ok") {
|
||||||
|
accounts = data.addresses;
|
||||||
|
$("#main").html(`<h2 class="text-center">Accounts</h2>
|
||||||
|
<button onClick="loadAccount('${activeemail}')" class="btn btn-primary my-2 my-sm-0"><i class="fas fa-backward"></i> Back</button><br/>
|
||||||
|
<ul>` +
|
||||||
|
accounts.map(a => `<li><a href="#" onClick="loadAccount('${a}')">${a}</a></li>`).join('') +
|
||||||
|
`</ul>`)
|
||||||
|
} else
|
||||||
|
alert("Unable to fetch list of accounts")
|
||||||
|
},"json")
|
||||||
|
}
|
||||||
|
|
||||||
function loadAccount(email)
|
function loadAccount(email)
|
||||||
{
|
{
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
|
|
Loading…
Reference in a new issue