1
0
mirror of https://github.com/MailHops/mailhops-plugin.git synced 2025-05-18 23:30:08 -07:00

Wired up country filters and country tagging

This commit is contained in:
Andrew Van Tassel 2016-08-24 19:26:26 -06:00
parent af86406769
commit 82beb032f4
4 changed files with 465 additions and 78 deletions

View File

@ -6,11 +6,21 @@
var mailHops =
{
msgURI: null
, isLoaded: false
, options: {'version':'MailHops Plugin 2.0.0','lan':'en','unit':'mi','api_url':'https://api.mailhops.com','debug':false}
, message: { secure:[] }
, client_location: null
msgURI: null,
isLoaded: false,
options: {
'version':'MailHops Plugin 2.0.0',
'lan':'en',
'unit':'mi',
'api_url':'https://api.mailhops.com',
'debug':false,
'country_tag':false,
'country_filter':[]
},
message: {
secure:[]
},
client_location: null
};
mailHops.LOG = function(msg) {
@ -72,6 +82,10 @@ mailHops.loadPref = function()
mailHops.options.map_provider = mailHops.getCharPref('mail.mailHops.map_provider','OpenStreetMap.Mapnik');
mailHops.options.country_tag = mailHops.getCharPref('mail.mailHops.country_tag','false')=='true'?true:false;
mailHops.options.country_filter = mailHops.getCharPref('mail.mailHops.country_filter',[]);
if(mailHops.options.client_location == ''){
mailHops.setClientLocation(function(response){
mailHops.options.client_location=response;
@ -322,7 +336,7 @@ mailHops.setClientLocation = function(cb){
xmlhttp.open("GET", mailHopsUtils.getAPIUrl(mailHops.options)+'/lookup/?'+mailHopsUtils.getAPIUrlParams(mailHops.options)+'&r=&c=1',true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.readyState==4 && !!xmlhttp.responseText) {
try {
var data = JSON.parse(xmlhttp.responseText);
if(data && data.meta.code==200){
@ -337,6 +351,9 @@ mailHops.setClientLocation = function(cb){
pref.setCharPref("mail.mailHops.client_location", '') ;
cb('');
}
} else {
pref.setCharPref("mail.mailHops.client_location", '') ;
cb('');
}
};
xmlhttp.send(null);
@ -419,20 +436,30 @@ mailHops.saveResults = function(results,route){
//Add tag
if(!!route){
try{
var countryCode = mailHopsUtils.getXOriginatingCountryCode(route);
var msg = Components.classes["@mozilla.org/array;1"].createInstance(Components.interfaces.nsIMutableArray);
msg.clear();
msg.appendElement(msgHdr, false);
if(!!mailHops.options.country_tag)
{
var tagService = Components.classes["@mozilla.org/messenger/tagservice;1"].getService(Components.interfaces.nsIMsgTagService);
if(!tagService)
return;
var countryCode = mailHopsUtils.getXOriginatingCountryCode(route);
mailHops.LOG(tagService.getKeyForTag(countryCode))
if(!tagService.getKeyForTag(countryCode))
tagService.addTag(countryCode,'',0);
var msg = Components.classes["@mozilla.org/array;1"].createInstance(Components.interfaces.nsIMutableArray);
msg.clear();
msg.appendElement(msgHdr, false);
msgHdr.folder.addKeywordsToMessages(msg, countryCode );
mailHops.LOG( "Added CountryCode tag: "+countryCode );
ReloadMessage();
}
if(!!mailHops.options.country_filter && mailHops.options.country_filter.length){
if(mailHops.options.country_filter.indexOf(countryCode.toLowerCase()) !== -1){
msgHdr.folder.setJunkScoreForMessages(msg, "100");
}
}
} catch(e){
mailHops.LOG( "Error adding CountryCode tag: "+e );
}

View File

@ -3,19 +3,21 @@ if (!pref) {
}
var mailHopPreferences = {
api_url: null,
api_ssl: null,
api_url: '', //mailhops api url
api_ssl: '', //ssl?
api_key: '', //api key
fkey: '', //forecast.io api key
country_filter: [],
loadPreferences: function(){
this.api_url = document.getElementById("mailhop.api_url");
this.api_url = document.getElementById("mailhop.api_url").value;
this.api_ssl = document.getElementById("mailhop.api_ssl");
this.api_ssl = document.getElementById("mailhop.api_ssl").value;
this.api_key = document.getElementById("mailhop.api_key");
this.api_key = document.getElementById("mailhop.api_key").value;
this.fkey = document.getElementById("mailhop.fkey");
this.fkey = document.getElementById("mailhop.fkey").value;
document.getElementById("mailhop.api_ssl").value = "true";
@ -81,18 +83,34 @@ var mailHopPreferences = {
else
document.getElementById("mailhop.debug").checked = false;
this.api_key.value = pref.getCharPref("mail.mailHops.api_key",'');
// API info
this.api_key = pref.getCharPref("mail.mailHops.api_key",'');
this.api_url.value = pref.getCharPref("mail.mailHops.api_url",'https://api.mailhops.com');
this.api_url = pref.getCharPref("mail.mailHops.api_url",'https://api.mailhops.com');
if(this.api_url.value.indexOf('https')!==-1)
this.api_ssl.value = "true";
if(this.api_url.indexOf('https')===0)
this.api_ssl = "true";
else
this.api_ssl.value = "false";
this.api_ssl = "false";
this.api_url.value = this.api_url.value.replace('http://','').replace('https://','');
this.api_url = this.api_url.replace('http://','').replace('https://','');
this.fkey.value = pref.getCharPref("mail.mailHops.fkey",'');
this.fkey = pref.getCharPref("mail.mailHops.fkey",'');
// Country Filter and tagging
this.country_filter = JSON.parse(pref.getCharPref("mail.mailHops.country_filter",null) || []);
if(this.country_filter.length){
for(c in this.country_filter){
document.getElementById("country_"+this.country_filter[c]).checked=true;
}
}
if(pref.getCharPref("mail.mailHops.country_tag",'false')=='false')
document.getElementById("mailhop.country_tag").checked = false;
else
document.getElementById("mailhop.country_tag").checked = true;
saveAPIKey();
ResetLocation(document.getElementById("mailhop.refresh_location"));
},
@ -112,33 +130,87 @@ var mailHopPreferences = {
pref.setCharPref("mail.mailHops.debug", String(document.getElementById("mailhop.debug").checked));
//API vars
pref.setCharPref("mail.mailHops.api_key", this.api_key.value);
pref.setCharPref("mail.mailHops.api_key", this.api_key);
this.api_url.value = this.api_url.value.replace('http://','').replace('https://','');
if(this.api_ssl.value=="true")
pref.setCharPref("mail.mailHops.api_url", 'https://'+this.api_url.value);
this.api_url = this.api_url.replace('http://','').replace('https://','');
if(this.api_ssl=="true")
pref.setCharPref("mail.mailHops.api_url", 'https://'+this.api_url);
else
pref.setCharPref("mail.mailHops.api_url", 'http://'+this.api_url.value);
pref.setCharPref("mail.mailHops.api_url", 'http://'+this.api_url);
pref.setCharPref("mail.mailHops.fkey", String(document.getElementById("mailhop.fkey").value));
pref.setCharPref("mail.mailHops.fkey", String(this.fkey));
// Country Filter and tagging
this.country_filter = [];
for(c in mailHopsUtils.countries){
if(document.getElementById("country_"+mailHopsUtils.countries[c]).checked)
this.country_filter.push(document.getElementById("country_"+mailHopsUtils.countries[c]).getAttribute('value'));
}
pref.setCharPref("mail.mailHops.country_filter", String(JSON.stringify(this.country_filter)));
pref.setCharPref("mail.mailHops.country_tag", String(document.getElementById("mailhop.country_tag").checked));
return true;
}
},
countryListSelectAll: function(all){
for(c in mailHopsUtils.countries){
document.getElementById("country_"+mailHopsUtils.countries[c]).checked=all;
}
}
};
function TestConnection(e){
function saveAPIKey() {
if(!!mailHopPreferences.api_key && mailHopPreferences.api_key != ''){
var xmlhttp = new XMLHttpRequest();
var nativeJSON = Components.classes["@mozilla.org/dom/json;1"].createInstance(Components.interfaces.nsIJSON);
var apiBase = mailHopPreferences.api_url.value, lookupURL = '/v1/lookup/?app='+mailHops.options.version+'&healthcheck';
var apiBase = mailHopPreferences.api_url,
accountURL = '/v2/accounts/?app='+mailHops.options.version+'&api_key='+mailHopPreferences.api_key;
if(mailHopPreferences.api_ssl.value=="true")
if(mailHopPreferences.api_ssl=="true")
apiBase='https://'+apiBase;
else
apiBase='http://'+apiBase;
if(mailHopPreferences.api_key.value != '')
lookupURL = '/v2/lookup/?app='+mailHops.options.version+'&healthcheck&api_key='+mailHopPreferences.api_key.value;
xmlhttp.open("GET", apiBase+accountURL,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && !!xmlhttp.responseText) {
try{
var data = JSON.parse(xmlhttp.responseText);
if(!!data && data.meta.code==200){
document.getElementById("key_details").innerHTML = JSON.stringify(data.account).replace(/\,/g,'\n');
} else if(!!data.meta.message){
document.getElementById("key_details").innerHTML = data.meta.message;
} else {
document.getElementById("key_details").innerHTML = 'Invalid API Key';
}
}
catch (ex){
document.getElementById("key_details").innerHTML = 'Connection Failed to\n '+apiBase+'!';
}
} else {
document.getElementById("key_details").innerHTML = 'Connection Failed to\n '+apiBase+'!';
}
};
xmlhttp.send(null);
} else {
document.getElementById("key_details").innerHTML = 'Enter a valid API key above.';
}
}
function TestConnection(e){
var xmlhttp = new XMLHttpRequest();
var nativeJSON = Components.classes["@mozilla.org/dom/json;1"].createInstance(Components.interfaces.nsIJSON);
var apiBase = mailHopPreferences.api_url || 'https://api.mailhops.com',
lookupURL = '/v1/lookup/?app='+mailHops.options.version+'&healthcheck';
if(mailHopPreferences.api_ssl=="true")
apiBase='https://'+apiBase;
else
apiBase='http://'+apiBase;
if(mailHopPreferences.api_key != '')
lookupURL = '/v2/lookup/?app='+mailHops.options.version+'&healthcheck&api_key='+mailHopPreferences.api_key;
xmlhttp.open("GET", apiBase+lookupURL,true);
xmlhttp.onreadystatechange=function() {
@ -171,7 +243,7 @@ function ResetLocation(e){
document.getElementById("mailhop.client_location_host").value = '';
document.getElementById("mailhop.client_location_whois").value = '';
var MH_APIURL = mailHopPreferences.api_ssl.value=="true"?'https://'+mailHopPreferences.api_url.value:'http://'+mailHopPreferences.api_url.value;
var MH_APIURL = mailHopPreferences.api_ssl=="true"?'https://'+mailHopPreferences.api_url:'http://'+mailHopPreferences.api_url;
mailHops.setClientLocation(function(response){
@ -210,7 +282,7 @@ function ResetLocation(e){
}
function ResetConnection(){
mailHopPreferences.api_ssl.value=="true";
mailHopPreferences.api_ssl=="true";
mailHopPreferences.api_ssl.selectedIndex = 0;
mailHopPreferences.api_url.value='api.mailhops.com';
mailHopPreferences.api_url='api.mailhops.com';
}

View File

@ -21,6 +21,7 @@
<tabbox id="mhTabs" selectedIndex="0">
<tabs>
<tab label="Pro"/>
<tab label="Filter"/>
<tab label="Defaults"/>
<tab label="Display"/>
<tab label="API &amp; Hosting"/>
@ -31,19 +32,304 @@
<groupbox flex="1">
<caption label="MailHops Pro"/>
<description>
MailHops <label class="text-link plain" value="Pro" href="https://mailhops.com/pro"/> Upgrades your email client to an email routing machine.
<ul>
<li>Mail Stats</li>
<li></li>
<li></li>
</ul>
API Key <label class="text-link plain" value="Get Pro" href="https://mailhops.com/#getpro"/>
</description>
<textbox id="mailhop.api_key" value=""/>
<grid flex="1">
<columns>
<column flex="1"/>
<column/>
</columns>
<rows>
<row>
<textbox id="mailhop.api_key" value="Enter API Key"/>
<button onclick="saveAPIKey(this);">Save Key</button>
</row>
<row>
<description id="key_details"></description>
</row>
</rows>
</grid>
</groupbox>
</tabpanel>
<tabpanel>
<groupbox flex="1" style="height:400px;overflow: scroll;">
<caption label="Filter"/>
<checkbox id="mailhop.country_tag" label="Tag messages with country origin" checked="false"/>
<description>Mark messages as Junk from Countries checked below.
<label class="text-link plain" value="All " onclick="mailHopPreferences.countryListSelectAll(true);"/>
<label class="text-link plain" value=" None" onclick="mailHopPreferences.countryListSelectAll(false);"/>
</description>
<grid flex="1">
<columns>
<column flex="1"/>
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<vbox>
<checkbox id="country_ad" value="ad" label="ad"/>
<checkbox id="country_ae" value="ae" label="ae"/>
<checkbox id="country_af" value="af" label="af"/>
<checkbox id="country_ag" value="ag" label="ag"/>
<checkbox id="country_ai" value="ai" label="ai"/>
<checkbox id="country_al" value="al" label="al"/>
<checkbox id="country_am" value="am" label="am"/>
<checkbox id="country_an" value="an" label="an"/>
<checkbox id="country_ao" value="ao" label="ao"/>
<checkbox id="country_ar" value="ar" label="ar"/>
<checkbox id="country_as" value="as" label="as"/>
<checkbox id="country_at" value="at" label="at"/>
<checkbox id="country_au" value="au" label="au"/>
<checkbox id="country_aw" value="aw" label="aw"/>
<checkbox id="country_ax" value="ax" label="ax"/>
<checkbox id="country_az" value="az" label="az"/>
<checkbox id="country_ba" value="ba" label="ba"/>
<checkbox id="country_bb" value="bb" label="bb"/>
<checkbox id="country_bd" value="bd" label="bd"/>
<checkbox id="country_be" value="be" label="be"/>
<checkbox id="country_bf" value="bf" label="bf"/>
<checkbox id="country_bg" value="bg" label="bg"/>
<checkbox id="country_bh" value="bh" label="bh"/>
<checkbox id="country_bi" value="bi" label="bi"/>
<checkbox id="country_bj" value="bj" label="bj"/>
<checkbox id="country_bm" value="bm" label="bm"/>
<checkbox id="country_bn" value="bn" label="bn"/>
<checkbox id="country_bo" value="bo" label="bo"/>
<checkbox id="country_br" value="br" label="br"/>
<checkbox id="country_bs" value="bs" label="bs"/>
<checkbox id="country_bt" value="bt" label="bt"/>
<checkbox id="country_bv" value="bv" label="bv"/>
<checkbox id="country_bw" value="bw" label="bw"/>
<checkbox id="country_by" value="by" label="by"/>
<checkbox id="country_bz" value="bz" label="bz"/>
<checkbox id="country_ca" value="ca" label="ca"/>
<checkbox id="country_catalonia" value="catalonia" label="catalonia"/>
<checkbox id="country_cc" value="cc" label="cc"/>
<checkbox id="country_cd" value="cd" label="cd"/>
<checkbox id="country_cf" value="cf" label="cf"/>
<checkbox id="country_cg" value="cg" label="cg"/>
<checkbox id="country_ch" value="ch" label="ch"/>
<checkbox id="country_ci" value="ci" label="ci"/>
<checkbox id="country_ck" value="ck" label="ck"/>
<checkbox id="country_cl" value="cl" label="cl"/>
<checkbox id="country_cm" value="cm" label="cm"/>
<checkbox id="country_cn" value="cn" label="cn"/>
<checkbox id="country_co" value="co" label="co"/>
<checkbox id="country_cr" value="cr" label="cr"/>
<checkbox id="country_cs" value="cs" label="cs"/>
<checkbox id="country_cu" value="cu" label="cu"/>
<checkbox id="country_cv" value="cv" label="cv"/>
<checkbox id="country_cx" value="cx" label="cx"/>
<checkbox id="country_cy" value="cy" label="cy"/>
<checkbox id="country_cz" value="cz" label="cz"/>
<checkbox id="country_de" value="de" label="de"/>
<checkbox id="country_dj" value="dj" label="dj"/>
<checkbox id="country_dk" value="dk" label="dk"/>
<checkbox id="country_dm" value="dm" label="dm"/>
<checkbox id="country_do" value="do" label="do"/>
<checkbox id="country_dz" value="dz" label="dz"/>
<checkbox id="country_ec" value="ec" label="ec"/>
<checkbox id="country_ee" value="ee" label="ee"/>
<checkbox id="country_eg" value="eg" label="eg"/>
<checkbox id="country_eh" value="eh" label="eh"/>
<checkbox id="country_england" value="england" label="england"/>
<checkbox id="country_er" value="er" label="er"/>
<checkbox id="country_es" value="es" label="es"/>
<checkbox id="country_et" value="et" label="et"/>
<checkbox id="country_europeanunion" value="europeanunion" label="europeanunion"/>
<checkbox id="country_fam" value="fam" label="fam"/>
<checkbox id="country_fi" value="fi" label="fi"/>
<checkbox id="country_fj" value="fj" label="fj"/>
<checkbox id="country_fk" value="fk" label="fk"/>
<checkbox id="country_fm" value="fm" label="fm"/>
<checkbox id="country_fo" value="fo" label="fo"/>
<checkbox id="country_fr" value="fr" label="fr"/>
<checkbox id="country_ga" value="ga" label="ga"/>
<checkbox id="country_gb" value="gb" label="gb"/>
<checkbox id="country_gd" value="gd" label="gd"/>
<checkbox id="country_ge" value="ge" label="ge"/>
<checkbox id="country_gf" value="gf" label="gf"/>
<checkbox id="country_gh" value="gh" label="gh"/>
</vbox>
<vbox>
<checkbox id="country_gi" value="gi" label="gi"/>
<checkbox id="country_gl" value="gl" label="gl"/>
<checkbox id="country_gm" value="gm" label="gm"/>
<checkbox id="country_gn" value="gn" label="gn"/>
<checkbox id="country_gp" value="gp" label="gp"/>
<checkbox id="country_gq" value="gq" label="gq"/>
<checkbox id="country_gr" value="gr" label="gr"/>
<checkbox id="country_gs" value="gs" label="gs"/>
<checkbox id="country_gt" value="gt" label="gt"/>
<checkbox id="country_gu" value="gu" label="gu"/>
<checkbox id="country_gw" value="gw" label="gw"/>
<checkbox id="country_gy" value="gy" label="gy"/>
<checkbox id="country_hk" value="hk" label="hk"/>
<checkbox id="country_hm" value="hm" label="hm"/>
<checkbox id="country_hn" value="hn" label="hn"/>
<checkbox id="country_hr" value="hr" label="hr"/>
<checkbox id="country_ht" value="ht" label="ht"/>
<checkbox id="country_hu" value="hu" label="hu"/>
<checkbox id="country_id" value="id" label="id"/>
<checkbox id="country_ie" value="ie" label="ie"/>
<checkbox id="country_il" value="il" label="il"/>
<checkbox id="country_in" value="in" label="in"/>
<checkbox id="country_io" value="io" label="io"/>
<checkbox id="country_iq" value="iq" label="iq"/>
<checkbox id="country_ir" value="ir" label="ir"/>
<checkbox id="country_is" value="is" label="is"/>
<checkbox id="country_it" value="it" label="it"/>
<checkbox id="country_jm" value="jm" label="jm"/>
<checkbox id="country_jo" value="jo" label="jo"/>
<checkbox id="country_jp" value="jp" label="jp"/>
<checkbox id="country_ke" value="ke" label="ke"/>
<checkbox id="country_kg" value="kg" label="kg"/>
<checkbox id="country_kh" value="kh" label="kh"/>
<checkbox id="country_ki" value="ki" label="ki"/>
<checkbox id="country_km" value="km" label="km"/>
<checkbox id="country_kn" value="kn" label="kn"/>
<checkbox id="country_kp" value="kp" label="kp"/>
<checkbox id="country_kr" value="kr" label="kr"/>
<checkbox id="country_kw" value="kw" label="kw"/>
<checkbox id="country_ky" value="ky" label="ky"/>
<checkbox id="country_kz" value="kz" label="kz"/>
<checkbox id="country_la" value="la" label="la"/>
<checkbox id="country_lb" value="lb" label="lb"/>
<checkbox id="country_lc" value="lc" label="lc"/>
<checkbox id="country_li" value="li" label="li"/>
<checkbox id="country_lk" value="lk" label="lk"/>
<checkbox id="country_lr" value="lr" label="lr"/>
<checkbox id="country_ls" value="ls" label="ls"/>
<checkbox id="country_lt" value="lt" label="lt"/>
<checkbox id="country_lu" value="lu" label="lu"/>
<checkbox id="country_lv" value="lv" label="lv"/>
<checkbox id="country_ly" value="ly" label="ly"/>
<checkbox id="country_ma" value="ma" label="ma"/>
<checkbox id="country_mc" value="mc" label="mc"/>
<checkbox id="country_md" value="md" label="md"/>
<checkbox id="country_me" value="me" label="me"/>
<checkbox id="country_mg" value="mg" label="mg"/>
<checkbox id="country_mh" value="mh" label="mh"/>
<checkbox id="country_mk" value="mk" label="mk"/>
<checkbox id="country_ml" value="ml" label="ml"/>
<checkbox id="country_mm" value="mm" label="mm"/>
<checkbox id="country_mn" value="mn" label="mn"/>
<checkbox id="country_mo" value="mo" label="mo"/>
<checkbox id="country_mp" value="mp" label="mp"/>
<checkbox id="country_mq" value="mq" label="mq"/>
<checkbox id="country_mr" value="mr" label="mr"/>
<checkbox id="country_ms" value="ms" label="ms"/>
<checkbox id="country_mt" value="mt" label="mt"/>
<checkbox id="country_mu" value="mu" label="mu"/>
<checkbox id="country_mv" value="mv" label="mv"/>
<checkbox id="country_mw" value="mw" label="mw"/>
<checkbox id="country_mx" value="mx" label="mx"/>
<checkbox id="country_my" value="my" label="my"/>
<checkbox id="country_mz" value="mz" label="mz"/>
<checkbox id="country_na" value="na" label="na"/>
<checkbox id="country_nc" value="nc" label="nc"/>
<checkbox id="country_ne" value="ne" label="ne"/>
<checkbox id="country_nf" value="nf" label="nf"/>
<checkbox id="country_ng" value="ng" label="ng"/>
<checkbox id="country_ni" value="ni" label="ni"/>
<checkbox id="country_nl" value="nl" label="nl"/>
<checkbox id="country_no" value="no" label="no"/>
</vbox>
<vbox>
<checkbox id="country_np" value="np" label="np"/>
<checkbox id="country_nr" value="nr" label="nr"/>
<checkbox id="country_nu" value="nu" label="nu"/>
<checkbox id="country_nz" value="nz" label="nz"/>
<checkbox id="country_om" value="om" label="om"/>
<checkbox id="country_pa" value="pa" label="pa"/>
<checkbox id="country_pe" value="pe" label="pe"/>
<checkbox id="country_pf" value="pf" label="pf"/>
<checkbox id="country_pg" value="pg" label="pg"/>
<checkbox id="country_ph" value="ph" label="ph"/>
<checkbox id="country_pk" value="pk" label="pk"/>
<checkbox id="country_pl" value="pl" label="pl"/>
<checkbox id="country_pm" value="pm" label="pm"/>
<checkbox id="country_pn" value="pn" label="pn"/>
<checkbox id="country_pr" value="pr" label="pr"/>
<checkbox id="country_ps" value="ps" label="ps"/>
<checkbox id="country_pt" value="pt" label="pt"/>
<checkbox id="country_pw" value="pw" label="pw"/>
<checkbox id="country_py" value="py" label="py"/>
<checkbox id="country_qa" value="qa" label="qa"/>
<checkbox id="country_re" value="re" label="re"/>
<checkbox id="country_ro" value="ro" label="ro"/>
<checkbox id="country_rs" value="rs" label="rs"/>
<checkbox id="country_ru" value="ru" label="ru"/>
<checkbox id="country_rw" value="rw" label="rw"/>
<checkbox id="country_sa" value="sa" label="sa"/>
<checkbox id="country_sb" value="sb" label="sb"/>
<checkbox id="country_sc" value="sc" label="sc"/>
<checkbox id="country_scotland" value="scotland" label="scotland"/>
<checkbox id="country_sd" value="sd" label="sd"/>
<checkbox id="country_se" value="se" label="se"/>
<checkbox id="country_sg" value="sg" label="sg"/>
<checkbox id="country_sh" value="sh" label="sh"/>
<checkbox id="country_si" value="si" label="si"/>
<checkbox id="country_sj" value="sj" label="sj"/>
<checkbox id="country_sk" value="sk" label="sk"/>
<checkbox id="country_sl" value="sl" label="sl"/>
<checkbox id="country_sm" value="sm" label="sm"/>
<checkbox id="country_sn" value="sn" label="sn"/>
<checkbox id="country_so" value="so" label="so"/>
<checkbox id="country_sr" value="sr" label="sr"/>
<checkbox id="country_st" value="st" label="st"/>
<checkbox id="country_sv" value="sv" label="sv"/>
<checkbox id="country_sy" value="sy" label="sy"/>
<checkbox id="country_sz" value="sz" label="sz"/>
<checkbox id="country_tc" value="tc" label="tc"/>
<checkbox id="country_td" value="td" label="td"/>
<checkbox id="country_tf" value="tf" label="tf"/>
<checkbox id="country_tg" value="tg" label="tg"/>
<checkbox id="country_th" value="th" label="th"/>
<checkbox id="country_tj" value="tj" label="tj"/>
<checkbox id="country_tk" value="tk" label="tk"/>
<checkbox id="country_tl" value="tl" label="tl"/>
<checkbox id="country_tm" value="tm" label="tm"/>
<checkbox id="country_tn" value="tn" label="tn"/>
<checkbox id="country_to" value="to" label="to"/>
<checkbox id="country_tr" value="tr" label="tr"/>
<checkbox id="country_tt" value="tt" label="tt"/>
<checkbox id="country_tv" value="tv" label="tv"/>
<checkbox id="country_tw" value="tw" label="tw"/>
<checkbox id="country_tz" value="tz" label="tz"/>
<checkbox id="country_ua" value="ua" label="ua"/>
<checkbox id="country_ug" value="ug" label="ug"/>
<checkbox id="country_um" value="um" label="um"/>
<checkbox id="country_us" value="us" label="us"/>
<checkbox id="country_uy" value="uy" label="uy"/>
<checkbox id="country_uz" value="uz" label="uz"/>
<checkbox id="country_va" value="va" label="va"/>
<checkbox id="country_vc" value="vc" label="vc"/>
<checkbox id="country_ve" value="ve" label="ve"/>
<checkbox id="country_vg" value="vg" label="vg"/>
<checkbox id="country_vi" value="vi" label="vi"/>
<checkbox id="country_vn" value="vn" label="vn"/>
<checkbox id="country_vu" value="vu" label="vu"/>
<checkbox id="country_wales" value="wales" label="wales"/>
<checkbox id="country_wf" value="wf" label="wf"/>
<checkbox id="country_ws" value="ws" label="ws"/>
<checkbox id="country_ye" value="ye" label="ye"/>
<checkbox id="country_yt" value="yt" label="yt"/>
<checkbox id="country_za" value="za" label="za"/>
<checkbox id="country_zm" value="zm" label="zm"/>
<checkbox id="country_zw" value="zw" label="zw"/>
</vbox>
</row>
</rows>
</grid>
</groupbox>
</tabpanel>
<tabpanel>
<groupbox flex="1">
<caption label="Default Language"/>

View File

@ -1,5 +1,7 @@
var mailHopsUtils = {
countries: ["ad","ae","af","ag","ai","al","am","an","ao","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","catalonia","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cs","cu","cv","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","england","er","es","et","europeanunion","fam","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","in","io","iq","ir","is","it","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","scotland","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","sv","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wales","wf","ws","ye","yt","za","zm","zw"],
dkim: function(result){
switch(result){