| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files (x86)/Mail Enable/Bin/NETWebMail/Mondo/lang/sys/ |
Upload File : |
<%@ Register TagPrefix="uc2" TagName="uscLanguageTokenMondo" Src="../Controls/uscLanguageToken.ascx" %>
<%@ Register TagPrefix="uc1" TagName="uscStyleHeaderMondo" Src="../Controls/uscStyleHeader.ascx" %>
<%@ Register TagPrefix="uc1" TagName="ScriptsInclude" Src="../Controls/ScriptsInclude.ascx" %>
<%@ Page Language="vb" AutoEventWireup="false" EnableViewState="false" CodeBehind="login.aspx.vb" Inherits="MailEnable.Clients.WebMail.Mondo.login" %>
<uc2:uscLanguageTokenMondo ID="uscToken" runat="server"></uc2:uscLanguageTokenMondo>
<%If MailEnable.WebRequest.ShowFacebookLogin(GetSitePostoffice()) Then%>
<!DOCTYPE html>
<html>
<%Else%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<%End If %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%If IsMobile() Then%>
<meta content='width=device-width, initial-scale=1' name='viewport'/>
<%End If %>
<title><%=uscToken.GetText("[ME_TXT-MailEnableWebMail]")%></title>
<uc1:uscStyleHeaderMondo ID="UscStyleHeader1" runat="server"></uc1:uscStyleHeaderMondo>
<uc1:ScriptsInclude ID="ScriptsInclude" runat="server" libraries="core"></uc1:ScriptsInclude>
<link rel="icon" type="image/ico" href="favicon.ico">
<% =RevealPassword() %>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<!--<style id="anticj">body{display:none !important;}</style>
<script type="text/javascript">
if (self === top) {
var anticj = document.getElementById("anticj");
anticj.parentNode.removeChild(anticj);
} else {
top.location = self.location;
}
</script>
-->
<style type="text/css">
#tblButtons {width:100%;}
#tblButtons td {text-align: right;}
</style>
<%If SetLoginBackgroundGraphic() Then%>
<style type="text/css">
body
{
background: url(<%=GetLoginLoadingBackgroundGraphicURL%>) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.login_bg {background:transparent}
.login_background
{
background: url(<%=GetLoginBackgroundGraphicURL()%>) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
</style>
<%End If%>
<%If Not SetLoginBrandingGraphic() Or IsMobile() Then%>
<style type="text/css">
.login_panel_left { display:none;}
.login_panel { width:370px;}
.login_copyright {width: 370px;}
</style>
<%End If%>
<script type="text/javascript">
var gBrowserType;
var t_translations;
function t_(token)
{
var t = null;
if (t_translations)
{
t = t_translations[token.replace("'", "").toLowerCase()];
}
return t ? t : token;
}
function ApplyTranslations() {
// applies language translation using the selected language
$("#js_login_right h1").html(t_("[ME_TXT-AccountLogin]"));
$("#LoginPrompt").html(t_("[ME_TXT-Username]")+":<br/>");
$("#PasswordPrompt").html(t_("[ME_TXT-Password]")+":<br/>");
$("#txtUsername").attr("placeholder", t_("[ME_TXT-Username]"));
$("#txtPassword").attr("placeholder", t_("[ME_TXT-Password]"));
$("#LanguageLabel").html(t_("[ME_TXT-Language]")+":<br/>");
$("#SkinLabel").html(t_("[ME_TXT-Skin]")+":<br/>");
$(".login_remember_checkbox span label").html(t_("[ME_TXT-RememberMySettings]"));
$("#btnLogin a").html(t_("[ME_TXT-Login]"));
$("#btnReset a").html(t_("[ME_TXT-Reset]"));
$("#btnReset").attr("title", t_("[ME_TXT-ClearFields]"));
$(".loadPanel_shell h2").html(t_("[ME_TXT-Loading]") + "...");
$("#ForgottenPassword").html(t_("[ME_TXT-Forgottenyourpassword]"));
$("#MobileVersion").html(t_("[ME_TXT-MobileVersion]"));
$("#AutoConfigureClient").html(t_("[ME_TXT-AutoConfigureClients]"));
$("#LoginOptions").html(t_("[ME_TXT-Options]"));
}
function LocaliseForm(lang) {
// gets and applies the json array of tokens for the form
// issue ajax request to request.aspx page to get json list of tokens
$.getJSON( "../../servlet/request.aspx?Cmd=GET-TRANSLATIONS&lang=" + lang + "&Tokens=[ME_TXT-Login],[ME_TXT-Reset],[ME_TXT-Username],[ME_TXT-Password],[ME_TXT-AccountLogin],[ME_TXT-RememberMySettings],[ME_TXT-Skin],[ME_TXT-Language],[ME_TXT-ConfirmUnsupportedBrowserUse],[ME_TXT-ConfigureCredentials],[ME_TXT-ClearFields],[ME_TXT-MobileVersion],[ME_TXT-AutoConfigureClients],[ME_TXT-Loading],[ME_TXT-MailEnableWebMail],[ME_TXT-Forgottenyourpassword],[ME_TXT-Options]&ts=" + (new Date()).getTime(), function( data ) {
//note: In future we could call another function to get all locale data, in case we need options, etc
t_translations = data;
ApplyTranslations();
});
}
function browserSupported() {
var browser = GetBrowserType();
var unsupportedBrowsers = new Array(BROWSER_TYPE_IE_PRE_6);
var supported = true;
for (var i = 0; supported && i < unsupportedBrowsers.length; i++) {
if (unsupportedBrowsers[i] == browser) {
supported = false;
}
}
return supported;
}
function confirmBrowserSupport() {
return browserSupported() || confirm(t_('[ME_TXT-ConfirmUnsupportedBrowserUse]'));
}
function ForgottenPassword() {
window.location.href = '../sys/ForgottenPassword.aspx?Username=';
}
function ResetFields() {
try {
document.getElementById('txtUsername').value = "";
document.getElementById('txtPassword').value = "";
document.getElementById('chkRemember').checked = false;
try {
document.getElementById('ddlLanguages').value = 'en';
}
catch (ex) {
document.getElementById('ddlLanguages').selectedIndex = 0;
}
document.getElementById('ddlSkins').selectedIndex = 0;
__doPostBack('', ''); // postback to update buttons' text
}
catch (ex) { }
}
function HideLogin() {
$('.login_panel, .login_copyright').hide();
$('#js_login_wait').show();
}
function ShowLogin() {
$('#js_login_wait').hide();
$('.login_panel, .login_copyright').show();
}
function IssueLogin() {
HideTOTPCode();
HideMsg();
HideLogin();
$.ajax({ // make an AJAX request
type: "POST",
url: getAppServletURL() + "?Cmd=LOGIN&Format=JSON&ts=" + (new Date()).getTime(), //&ME_SID=" + readCookie('MailEnable-SessionId') + "
data: $("#frmLogin").serializeNoViewState(), // serializes the form's elements (without viewstate so we do not get validation)
cache: false,
async: true,
error: function (jqXHR, sTextstatus, sErrorThrown) { alert('IssueLogin::Error: (' + jqXHR.responseText + '):' + sErrorThrown); },
complete: function (jqXHR, sTextstatus) { },
success: function (data) {
if (data.AuthenticationResult == '1') {
if (data.bPromptForKey == true) {
ShowLogin();
if (data.bKeyRequiresReset == true) {
$("#dvTOTP img").attr("src", data.QRCodeURL);
$("#dvSecretKey").text(data.TOTPCode);
ShowTOTPCode();
}
if (data.sFailureDescription.length > 0) {
ShowMsg(data.sFailureDescription);
}
$("#txtKey").show();
}
else {
//hit the client page
var sParams = "?LanguageId=" + $('#ddlLanguages').val() + "&Skin=" + $('#ddlSkins').val() + "&ClientAgent=" + $('#ClientAgent').val();
<%If Not AllowPageCaching() Then %>
sParams += "&CDT=" + (new Date().getTime());
<%End If %>
window.location = "client.aspx" + sParams;
}
}
else {
//hit the failure page?
ShowLogin();
ShowMsg(data.sFailureDescription);
}
}
});
}
function BrowserRequiresSubmit() {
//note: the line below forces the browser to submit (causing password saving for firefox). It is disabled for now, pending further testing. Current testing appears to be fine.
//return (navigator.userAgent && navigator.userAgent.toLowerCase().indexOf("firefox") != -1); //firefox requires form post
//return true;
return false;
}
function Login() {
if (!BrowserRequiresSubmit()) {
//call ajaxHandler
return LoginHandler();
} else {
//Submit the form (firefox needs this to store credentials)
$('#frmLogin').submit();
return false;
}
}
function LoginHandler() {
var $pass = document.getElementById('txtPassword');
var $user = document.getElementById('txtUsername');
var passL = $pass.value.length;
var userL = $user.value.length;
if (passL === 0) {
$pass.focus();
}
if (userL === 0) {
$user.focus();
}
//
// Here we want to submit an ajax request to do the login, and if it succeeds then return
//
if (confirmBrowserSupport() && passL != 0 && userL != 0) {
document.forms[0].elements['loginParam'].value = 'SubmitLogin';
if ($("#txtKey").is(":visible") && ($("#txtKey").val().length <= 0))
{
alert('The Code cannot be blank');
}
else
{
IssueLogin();
}
}
}
function Login_KeyPress(evt) {
evt = evt || window.event;
/*
if (IsEnterKey(evt)) {
if (document.getElementById('txtPassword').value.length < 1) {
document.getElementById('txtPassword').focus();
}
else
Login();
}
*/
if (IsEnterKey(evt)) Login();
}
function DeviceSupportsAutoConfigure(browser) {
return ((browser == BROWSER_TYPE_IPAD) || (browser == BROWSER_TYPE_IPOD) || (browser == BROWSER_TYPE_IPHONE));
}
function PageLoad() {
$("#jsWarning").hide();
gBrowserType = GetBrowserType();
//LocaliseForm('en'); no need to do it for the first one
document.getElementById('js_login_shell').style.visibility = 'visible';
if (document.addEventListener) {
document.addEventListener("keydown", Login_KeyPress, false);
} else {
/* IE8 and below don't support addEventListener, this is the alternative */
document.attachEvent("onkeydown", Login_KeyPress);
}
$("#txtKey").hide();
$("#txtUsername, #txtPassword, #txtKey").on('change', function () { HideMsg(); });
$("#txtUsername, #txtPassword, #txtKey").on('keydown', function () { HideMsg(); });
$('.login_bg').addClass("login_background");
var browser = GetBrowserTouchScreenMode();
if (DeviceSupportsAutoConfigure(browser)) {
$('#divAutoConfigureClients').show();
}
if (browser == BROWSER_TYPE_IPAD) {
$('#ClientAgent').val('Emulated iPad 13+');
}
<%If ApplyNotice() <> 0 Then %>
applyNotice();
<%End If%>
<% If RevealPasswordEnabled() Then %>
$('#togglepwd').on('click', function (e) {
const pwdtype = $('#txtPassword').attr('type') === 'password' ? 'text' : 'password';
document.querySelector('#txtPassword').setAttribute('type', pwdtype);
this.classList.toggle('fa-eye-slash');
});
<%End If%>
}
//$(document).ready(function () {}
function Submit(event) {
if (event != undefined) {
if (event.preventDefault) {
event.stopPropagation();
event.preventDefault();
}
else {
event.cancelBubble = true;
event.returnValue = false;
}
}
// if firefox, use this method to trigger login
if (BrowserRequiresSubmit()) {
LoginHandler();
//note: returning true here causes the submit to succeed and then saves the data.. but it also causes the duplicated submission which needs investigation
return true;
}
return false;
}
function HideMsg() {
$("#lblDescription").text('');
$("#lblDescription").css('visibility', 'hidden');
//$("#lblDescription").hide();
}
function ShowMsg(sMsg) {
$("#lblDescription").text(sMsg);
$("#lblDescription").css('visibility', 'visible');
//$("#lblDescription").show();
}
function HideTOTPCode() {
$(".login_lang_table, #dvCredentials, .login_remember_checkbox").show();
$("#dvTOTP").hide();
}
function ShowTOTPCode() {
$(".login_lang_table, #dvCredentials, .login_remember_checkbox").hide();
$("#dvTOTP").show();
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function setCookie(cname, cvalue, exdays)
{
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function applyNotice() {
if (getCookie('notice_state') == 'accepted') {
$("#js_terms_notice").hide();
} else {
$("#js_terms_notice").show();
}
}
function acceptNotice() {
setCookie('notice_state','accepted',365); //Cookie GDPR mandates every 365 days
$("#js_terms_notice").hide();
return true;
}
function denyNotice() {
$("#js_terms_notice").hide();
<%If ApplyNotice() = 1 Then %>
self.close();
<%End If%>
}
function ShowOptions() {
$('#js_login_options').show();
$('#chkShowLoginWallpaper').prop("checked", getCookie('show_login_wallpaper') != 'false');
}
function SetOptions() {
setCookie('show_login_wallpaper', ($('#chkShowLoginWallpaper').prop('checked')) ? 'true' : 'false');
$('#js_login_options').hide();
return true;
}
</script>
</head>
<body onload="PageLoad()">
<%=MailEnable.WebRequest.GetFacebookLibrary(GetSitePostoffice(), IIf(FaceBookLoginMode() = 1, "statusChangeCallback", ""))%>
<%If MailEnable.WebRequest.ShowFacebookLogin(GetSitePostoffice()) Then%>
<script>
function doFBLogin(event) {
event = event || window.event;
if (event != undefined) {
if (event.preventDefault) {
event.stopPropagation();
event.preventDefault();
}
else {
event.cancelBubble = true;
event.returnValue = false;
}
}
FB.getLoginStatus(function (response) {
facebookStatusLoginCallback(response);
});
return false;
}
function facebookStatusLoginCallback(response) {
HideMsg();
$('#Token, #AuthId').attr("value", '');
if (response.status === 'connected') {
//logged into fb and our app is authorized.
if (VerifyToken('<%=MailEnable.Administration.AuthToken.GetApplicationId("Facebook", GetSitePostoffice())%>', response.authResponse.userID, response.authResponse.accessToken, response.authResponse.expiresIn, 'login')) {
//redirect to client page
var sParams = "?LanguageId=" + $('#ddlLanguages').val() + "&Skin=" + $('#ddlSkins').val();
<%If Not AllowPageCaching() Then %>
sParams += "&CDT=" + (new Date().getTime());
<%End If %>
window.location = "client.aspx" + sParams;
}
else {
// have not paired account or fb token/user could not be validated
ShowMsg('<%=uscToken.GetText("[ME_TXT-ConfigureCredentials]")%>');
$('#Token').attr("value", response.authResponse.accessToken);
$('#AuthId').attr("value", response.authResponse.userID);
$('#bnFbLogin').hide();
}
} else if (response.status === 'not_authorized') {
//they are logged into fb, but have not authorized fb access (and presumably have not paired the account)
ShowMsg('Please log in and configure Facebook login under options.');
} else {
//not logged into facebook
ShowMsg('Please log into Facebook before attempting to login.');
}
}
</script>
<%End If%>
<noscript>
<div id="jsWarning">You must enable Javascript in order to access this service.</div>
</noscript>
<form id="frmLogin" name="frmLogin" runat="server" EnableViewState="false" style="width: 100%; height: 100%;" onsubmit="return Submit(this)">
<div class="login_bg">
<div id="js_login_shell" class="login_shell" style="visibility: hidden;">
<div class="login_panel">
<div class="login_panel_left" style="display:inline-block">
<div class="login_panel_left_inner"><img src="<%=GetLoginBrandingGraphicURL()%>" alt="MailEnable"/></div>
</div>
<div id="js_login_right" class="login_panel_right" >
<h1><%=uscToken.GetText("[ME_TXT-AccountLogin]")%></h1>
<div id="LoginPrompt" style="display:none;"><%=uscToken.GetText("LOGINPROMPT")%><br /></div>
<div id="dvCredentials">
<asp:TextBox ID="txtUsername" runat="server" CssClass="textfield" placeholder="Username"></asp:TextBox><br />
<div id="PasswordPrompt" style="display:none;"><%=uscToken.GetText("PASSWORDPROMPT")%><br /></div>
<asp:TextBox ID="txtPassword" runat="server" CssClass="textfield" TextMode="Password" placeholder="Password"></asp:TextBox><i class="far fa-eye" style="margin-left: -20px; cursor: pointer;" id="togglepwd"></i><br />
</div>
<div id="lblDescription" style="visibility:visible;color:Blue;height:22px;"></div>
<div id="dvTOTP" style="display:none">
<img src="//:0" alt="QRCode"/> <!-- dummy URL for compliance -->
<div id="dvSecretKey" style="float: right;margin-top:5px"></div>
<br />
</div>
<asp:TextBox class="textfield" ID="txtKey" Runat="server" placeholder="Key"></asp:TextBox>
<table class="login_lang_table">
<tr><td><div id="LanguageLabel"><%=uscToken.GetText("LANGUAGE")%><br/></div>
<asp:DropDownList ID="ddlLanguages" runat="server" onchange="LocaliseForm(this.value);"></asp:DropDownList>
</td>
<td class="login_lang_table_mid"></td>
<td>
<% If SkinListLength >= 1 Then%>
<div id="SkinLabel"><%=uscToken.GetText("SKIN")%><br/></div>
<asp:DropDownList ID="ddlSkins" runat="server"></asp:DropDownList>
<% End If%>
</td>
</tr>
</table>
<div class="login_remember_checkbox">
<asp:CheckBox ID="chkRemember" runat="server" CssClass="checkbox"></asp:CheckBox>
</div>
<table id="tblButtons">
<tr>
<td>
<%If MailEnable.WebRequest.ShowFacebookLogin(GetSitePostoffice()) Then %>
<fb:login-button id="bnFbLogin" data-size="large" onlogin="doFBLogin()"></fb:login-button>
<%End If%>
</td>
<td>
<div id="btnLogin" class="bttn_shell blue">
<a onclick="Login()" class="bttn"><%= sLoginBtnText %></a>
</div>
<div id="btnReset" class="bttn_shell" title="<%=uscToken.GetText("[ME_TXT-ClearFields]")%>">
<a onclick="ResetFields()" class="bttn"><%= sResetBtnText %></a>
</div>
</td>
</tr>
</table>
<div class="login_foot_nav">
<% If PasswordRecoveryEnabled Then%>
<a id="ForgottenPassword" onclick="ForgottenPassword();"> <%= sForgottenPasswordText %></a>
<% End If%>
<% If MobileWebmailAssociation = MobileWebmailAssociationMode.Link Or MobileWebmailAssociation = MobileWebmailAssociationMode.RedirectOrLink Then%>
<%If PasswordRecoveryEnabled Then%>
|
<%End If%>
<a id="MobileVersion" href="<%=VirtualDirectoryRootPath %>/Mobile/Login.aspx"><%=uscToken.GetText("[ME_TXT-MobileVersion]")%></a>
<% If iPhoneAutomaticConfigurationEnabled Then%>
<span id="divAutoConfigureClients" style="display:none"> | <a id="AutoConfigureClient" href="<%=VirtualDirectoryRootPath %>/Mobile/Clients.aspx"><%=uscToken.GetText("[ME_TXT-AutoConfigureClients]")%></a></span>
<% End If%>
<%If ShowLoginOptions() Then%>
| <a id="LoginOptions" href="#" onclick="ShowOptions()"><%=uscToken.GetText("[ME_TXT-Options]")%></a>
<% End If%>
<% End If%>
</div>
</div>
</div>
<div class="login_copyright">© 2022 <a href='https://www.mailenable.com' target='_blank'>MailEnable Pty. Ltd.</a></div>
</div>
</div>
<div id="js_login_wait" class="pageLoad_shell" style="display: none;">
<div class="pageLoad_shell">
<div class="loadPanel_shell">
<h2><%=uscToken.GetText("[ME_TXT-Loading]")%>...</h2>
<div class="loadPanel_bar"></div>
</div>
</div>
</div>
<div id="js_login_options" class="pageLoad_shell" style="display: none;">
<div class="loadPanel_shell" style="width:200px;top:50%">
<div style="color:white; font-size:14px;margin-bottom:10px">
<div class="login_remember_checkbox"><span class="checkbox"><input name="chkShowLoginWallpaper" id="chkShowLoginWallpaper" type="checkbox"><label for="chkShowLoginWallpaper" style="color:white;"><%= uscToken.GetText("[ME_TXT-EnableBackgroundImage]") %></label></span></div>
</div>
<div style="text-align:center; width:100%">
<div id="btnOptionsOK" class="bttn_shell blue">
<a onclick="SetOptions();" class="bttn"><%= uscToken.GetText("[ME_TXT-OK]") %></a>
</div>
<div id="btnOptionsCancel" class="bttn_shell">
<a onclick="$('#js_login_options').hide();" class="bttn"><%= uscToken.GetText("[ME_TXT-Cancel]") %></a>
</div>
</div>
</div>
</div>
<div id="js_terms_notice" class="pageLoad_shell" style="display:none">
<div class="pageLoad_shell">
<div class="loadPanel_shell" style="width:670px;top:75%">
<div style="color:white; font-weight:bold; font-size:14px"><%= uscToken.GetText("[ME_TXT-UsageNoticeHeader]") %></div>
<div style="color:white;margin-top:5px;margin-bottom:15px"><%= uscToken.GetText("[ME_TXT-UsageNotice]") %></div>
<div style="text-align:right; width:100%">
<div id="btnAccept" class="bttn_shell blue">
<a onclick="acceptNotice()" class="bttn"><%= uscToken.GetText("[ME_TXT-Accept]") %></a>
</div>
<div id="btnDeny" class="bttn_shell">
<a onclick="denyNotice()" class="bttn"><%= uscToken.GetText("[ME_TXT-Close]") %></a>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" runat="server" id="loginParam" />
<input type="hidden" runat="server" id="Token" name="Token"/>
<input type="hidden" runat="server" id="AuthId" name="AuthId"/>
<input type="hidden" name="offset" id="offset" value="" />
<input type="hidden" name="ClientAgent" id="ClientAgent" value="" />
<script type="text/javascript">
<!--
var now = new Date()
var offset = now.getTimezoneOffset();
document.getElementById("offset").value = offset;
//-->
</script>
</form>
<uc1:ScriptsInclude ID="ScriptsInclude1" runat="server" libraries="all"></uc1:ScriptsInclude>
<script type="text/javascript">
<!--
if (window.jQuery) {
$.fn.serializeNoViewState = function () {
return this.find("input,textarea,select,hidden")
.not("[type=hidden][name^=__]")
.serialize();
}
}
//-->
</script>
</body>
</html>