From ab42e47385e670973a67c1126541c7c64c9456ce Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Sat, 14 Jul 2012 21:56:38 +0000
Subject: [PATCH] Added iframing pages for susimail and susidns

---
 .../src/net/i2p/router/web/HomeHelper.java    |  4 +-
 .../i2p/router/web/SummaryBarRenderer.java    |  4 +-
 apps/routerconsole/jsp/dns.jsp                | 78 +++++++++++++++++++
 apps/routerconsole/jsp/webmail.jsp            | 78 +++++++++++++++++++
 installer/resources/readme/readme.html        |  2 +-
 installer/resources/readme/readme_de.html     |  2 +-
 installer/resources/readme/readme_es.html     |  2 +-
 installer/resources/readme/readme_fr.html     |  2 +-
 installer/resources/readme/readme_nl.html     |  2 +-
 installer/resources/readme/readme_pt.html     |  2 +-
 installer/resources/readme/readme_sv.html     |  2 +-
 installer/resources/readme/readme_zh.html     |  2 +-
 .../themes/susidns/light/susidns.css          |  9 +++
 .../themes/susimail/light/susimail.css        |  9 +++
 14 files changed, 186 insertions(+), 12 deletions(-)
 create mode 100644 apps/routerconsole/jsp/dns.jsp
 create mode 100644 apps/routerconsole/jsp/webmail.jsp

diff --git a/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java
index 8b1d78140c..994e4806ce 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java
@@ -24,11 +24,11 @@ public class HomeHelper extends HelperBase {
     private static final String PROP_SEARCH = "routerconsole.showSearch";
 
     static final String DEFAULT_SERVICES =
-        _x("Addressbook") + S + _x("Manage your I2P hosts file here (I2P domain name resolution)") + S + "/susidns/index" + S + I + "book_addresses.png" + S +
+        _x("Addressbook") + S + _x("Manage your I2P hosts file here (I2P domain name resolution)") + S + "/dns" + S + I + "book_addresses.png" + S +
         _x("Configure Bandwidth") + S + _x("I2P Bandwidth Configuration") + S + "/config" + S + I + "wrench_orange.png" + S +
         _x("Configure Language") + S + _x("Console Language Selection") + S + "/configui" + S + I + "wrench_orange.png" + S +
         _x("Customize Home Page") + S + _x("I2P Home Page Configuration") + S + "/confighome" + S + I + "wrench_orange.png" + S +
-        _x("Email") + S + _x("Anonymous webmail client") + S + "/susimail/susimail" + S + I + "email.png" + S +
+        _x("Email") + S + _x("Anonymous webmail client") + S + "/webmail" + S + I + "email.png" + S +
         _x("Help") + S + _x("I2P Router Help") + S + "/help" + S + I + "help.png" + S +
         _x("Router Console") + S + _x("I2P Router Console") + S + "/console" + S + I + "wrench_orange.png" + S +
         _x("Torrents") + S + _x("Built-in anonymous BitTorrent Client") + S + "/torrents" + S + I + "film.png" + S +
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
index fb4ad5a641..6327033c94 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
@@ -135,7 +135,7 @@ public class SummaryBarRenderer {
 
                    "<hr class=\"b\"><table><tr><td>" +
 
-                   "<a href=\"/susimail/susimail\" target=\"blank\" title=\"")
+                   "<a href=\"/webmail\" target=\"_top\" title=\"")
            .append(_("Anonymous webmail client"))
            .append("\">")
            .append(_("Email"))
@@ -225,7 +225,7 @@ public class SummaryBarRenderer {
            .append(_("I2PTunnel"))
            .append("</a>\n" +
 
-                   "<a href=\"/susidns/index\" target=\"_blank\" title=\"")
+                   "<a href=\"/dns\" target=\"_top\" title=\"")
            .append(_("Manage your I2P hosts file here (I2P domain name resolution)"))
            .append("\">")
            .append(_("Addressbook"))
diff --git a/apps/routerconsole/jsp/dns.jsp b/apps/routerconsole/jsp/dns.jsp
new file mode 100644
index 0000000000..ab29f4008b
--- /dev/null
+++ b/apps/routerconsole/jsp/dns.jsp
@@ -0,0 +1,78 @@
+<%@page contentType="text/html"%>
+<%@page trimDirectiveWhitespaces="true"%>
+<%@page pageEncoding="UTF-8"%>
+<jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
+<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+    // CSSHelper is also pulled in by css.jsi below...
+    boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
+    if (!testIFrame) {
+        response.setStatus(302, "Moved");
+        response.setHeader("Location", "/susidns/index");
+    } else {
+%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html><head>
+<%@include file="css.jsi" %>
+<%=intl.title("addressbook")%>
+<script src="/js/ajax.js" type="text/javascript"></script>
+<script type="text/javascript">
+  var failMessage = "<hr><b><%=intl._("Router is down")%><\/b>";
+  function requestAjax1() { ajax("/xhr1.jsp?requestURI=<%=request.getRequestURI()%>", "xhr", <%=intl.getRefresh()%>000); }
+  function initAjax() { setTimeout(requestAjax1, <%=intl.getRefresh()%>000);  }
+  function injectClass(f) {
+      f.className += ' iframed';
+      var doc = 'contentDocument' in f? f.contentDocument : f.contentWindow.document;
+      doc.body.className += ' iframed';
+  }
+  function resizeFrame(f) {
+      // offsetHeight returns the height of the visible area for an object, in pixels.
+      // The value contains the height with the padding, scrollBar, and the border,
+      // but does not include the margin. Therefore, any content within the iframe
+      // should have no margins at the very top or very bottom to avoid a scrollbar.
+      var doc = 'contentDocument' in f? f.contentDocument : f.contentWindow.document;
+      var totalHeight = doc.body.offsetHeight;
+
+      // Detect if horizontal scrollbar is present, and add its width to height if so.
+      // This prevents a vertical scrollbar appearing when the min-width is passed.
+      // FIXME: How to detect horizontal scrollbar in iframe? Always apply for now.
+      if (true) {
+          // Create the measurement node
+          var scrollDiv = document.createElement("div");
+          scrollDiv.className = "scrollbar-measure";
+          scrollDiv.style.width = "100px";
+          scrollDiv.style.height = "100px";
+          scrollDiv.style.overflow = "scroll";
+          scrollDiv.style.position = "absolute";
+          scrollDiv.style.top = "-9999px";
+          document.body.appendChild(scrollDiv);
+
+          // Get the scrollbar width
+          var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
+          totalHeight += scrollbarWidth;
+
+          // Delete the div
+          document.body.removeChild(scrollDiv);
+      }
+
+      f.style.height = totalHeight + "px";
+  }
+  function setupFrame() {
+      f = document.getElementById("susidnsframe");
+      injectClass(f);
+      resizeFrame(f);
+  }
+</script>
+</head><body onload="initAjax()">
+
+<%@include file="summary.jsi" %>
+
+<h1><%=intl._("I2P Addressbook")%> <span class="newtab"><a href="/susidns/index" target="_blank" title="<%=intl._("Open in new tab")%>"><img src="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/newtab.png" /></a></span></h1>
+<div class="main" id="main">
+<iframe src="/susidns/index" width="100%" height="100%" frameborder="0" border="0" name="susidnsframe" id="susidnsframe" onload="setupFrame()" allowtransparency="true">
+</iframe>
+</div></body></html>
+<%
+    }
+%>
diff --git a/apps/routerconsole/jsp/webmail.jsp b/apps/routerconsole/jsp/webmail.jsp
new file mode 100644
index 0000000000..1d9ae1cd6b
--- /dev/null
+++ b/apps/routerconsole/jsp/webmail.jsp
@@ -0,0 +1,78 @@
+<%@page contentType="text/html"%>
+<%@page trimDirectiveWhitespaces="true"%>
+<%@page pageEncoding="UTF-8"%>
+<jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
+<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+    // CSSHelper is also pulled in by css.jsi below...
+    boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
+    if (!testIFrame) {
+        response.setStatus(302, "Moved");
+        response.setHeader("Location", "/susimail/susimail");
+    } else {
+%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html><head>
+<%@include file="css.jsi" %>
+<%=intl.title("webmail")%>
+<script src="/js/ajax.js" type="text/javascript"></script>
+<script type="text/javascript">
+  var failMessage = "<hr><b><%=intl._("Router is down")%><\/b>";
+  function requestAjax1() { ajax("/xhr1.jsp?requestURI=<%=request.getRequestURI()%>", "xhr", <%=intl.getRefresh()%>000); }
+  function initAjax() { setTimeout(requestAjax1, <%=intl.getRefresh()%>000);  }
+  function injectClass(f) {
+      f.className += ' iframed';
+      var doc = 'contentDocument' in f? f.contentDocument : f.contentWindow.document;
+      doc.body.className += ' iframed';
+  }
+  function resizeFrame(f) {
+      // offsetHeight returns the height of the visible area for an object, in pixels.
+      // The value contains the height with the padding, scrollBar, and the border,
+      // but does not include the margin. Therefore, any content within the iframe
+      // should have no margins at the very top or very bottom to avoid a scrollbar.
+      var doc = 'contentDocument' in f? f.contentDocument : f.contentWindow.document;
+      var totalHeight = doc.body.offsetHeight;
+
+      // Detect if horizontal scrollbar is present, and add its width to height if so.
+      // This prevents a vertical scrollbar appearing when the min-width is passed.
+      // FIXME: How to detect horizontal scrollbar in iframe? Always apply for now.
+      if (true) {
+          // Create the measurement node
+          var scrollDiv = document.createElement("div");
+          scrollDiv.className = "scrollbar-measure";
+          scrollDiv.style.width = "100px";
+          scrollDiv.style.height = "100px";
+          scrollDiv.style.overflow = "scroll";
+          scrollDiv.style.position = "absolute";
+          scrollDiv.style.top = "-9999px";
+          document.body.appendChild(scrollDiv);
+
+          // Get the scrollbar width
+          var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
+          totalHeight += scrollbarWidth;
+
+          // Delete the div
+          document.body.removeChild(scrollDiv);
+      }
+
+      f.style.height = totalHeight + "px";
+  }
+  function setupFrame() {
+      f = document.getElementById("susimailframe");
+      injectClass(f);
+      resizeFrame(f);
+  }
+</script>
+</head><body onload="initAjax()">
+
+<%@include file="summary.jsi" %>
+
+<h1><%=intl._("I2P Webmail")%> <span class="newtab"><a href="/susimail/susimail" target="_blank" title="<%=intl._("Open in new tab")%>"><img src="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/newtab.png" /></a></span></h1>
+<div class="main" id="main">
+<iframe src="/susimail/susimail" width="100%" height="100%" frameborder="0" border="0" name="susimailframe" id="susimailframe" onload="setupFrame()" allowtransparency="true">
+</iframe>
+</div></body></html>
+<%
+    }
+%>
diff --git a/installer/resources/readme/readme.html b/installer/resources/readme/readme.html
index 3834b3d794..0e3405d148 100644
--- a/installer/resources/readme/readme.html
+++ b/installer/resources/readme/readme.html
@@ -9,7 +9,7 @@
 
 <li class="tidylist"><b>Invisible Internet &amp; Public Web Browsing</b><br>On I2P you can access anonymous websites (eepsites) and other services (e.g. ssh over I2P, IRC, Jabber etc.) in addition to being able to host your own services. You can also access the normal web anonymously via I2P's built-in web proxy (outproxy). <a href="http://www.i2p2.de/htproxyports.html" target="_blank">Configure your browser</a> to use the HTTP proxy at <code>127.0.0.1 port 4444</code>, then browse to an eepsite or a normal, unencrypted <code>http://</code> address. If you wish to disable or change outproxy access to the normal internet, remove or modify the outproxy entry for <code>false.i2p</code> under the <i>Outproxies</i> option in the <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy  Tunnel Editor</a>. In the "Sites of Interest" section <a href="#eepsites">below</a>, we list a few of the sites hosted on I2P.</li>
 
-<li class="tidylist"><b>Anonymous E-Mail</b><br>Postman's I2P-based mail system can be accessed either via <a href="/susimail/susimail">I2P's built-in mail client</a>
+<li class="tidylist"><b>Anonymous E-Mail</b><br>Postman's I2P-based mail system can be accessed either via <a href="/webmail">I2P's built-in mail client</a>
   (susimail) or using any mail client that supports smtp and pop3.
   Accounts can send and receive mail from the normal internet. For an
   account, visit <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>. Additionally, <a href="http://i2pbote.i2p/" target="_blank">I2P-Bote</a> is a new I2P-internal serverless, secure (end-to-end encrypted) e-mail system with an integrated anonymous/pseudonymous remailer, providing a web interface and a built-in addressbook. It is developed by HungryHobo, and can be installed as a <a href="#plugins">plugin</a>.</li>
diff --git a/installer/resources/readme/readme_de.html b/installer/resources/readme/readme_de.html
index d72cb2f63d..6dc9e90534 100644
--- a/installer/resources/readme/readme_de.html
+++ b/installer/resources/readme/readme_de.html
@@ -25,7 +25,7 @@
      kompatibel zu normalen  Email-Klienten (POP3/SMTP) ist, und welches es erlaubt, 
      Emails innerhalb von I2P sowie Emails von und ins normale Internet zu 
      schicken.  Hole Dir Dein Emailkonto auf <a href="http://hq.postman.i2p/">hq.postman.i2p</a>.
-     Im Verbund damit gibt es <a href="/susimail/susimail">susimail</a>, einen 
+     Im Verbund damit gibt es <a href="/webmail">susimail</a>, einen 
      browserbasierten anonymen POP3/SMTP-Klienten, fertig eingerichtet 
      f&uuml;r Postmans Email-Service. 
      <br>Oder probier unser neues serverloses und Ende-zu-Ende-verschl&uuml;sseltes Emailsystem <a href="http://tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a.b32.i2p/">I2P-Bote</a> (mit Webinterface) aus, welches als Plugin erh&auml;ltlich ist!</li>
diff --git a/installer/resources/readme/readme_es.html b/installer/resources/readme/readme_es.html
index 97467779a6..0d5e07bea7 100644
--- a/installer/resources/readme/readme_es.html
+++ b/installer/resources/readme/readme_es.html
@@ -17,7 +17,7 @@
  <li class="tidylist"><b>navegar en internet</b> - I2P cuenta con un HTTP-"Outproxy". Para poder usarlo, puedes tambi&eacute;n utilizar el proxy HTTP en el puerto 4444 - Si configuras tu navegador web para usar este proxy, puedes visitar las p&aacute;ginas web de forma an&oacute;nima. El tr&aacute;fico ser&aacute; enrutado atrav&eacute;s de la red I2P.</li>
  <li class="tidylist"><b>intercambiar datos</b> - Hay una <a href="i2psnark/">adaptaci&oacute;n</a> para I2P de la aplicaci&oacute;n <a href="http://www.bittorrent.com/">BitTorrent</a> 
      <a href="http://www.klomp.org/snark/">Snark</a>.</li>
- <li class="tidylist"><b>correo electr&oacute;nico an&oacute;nimo</b> - Postman cre&oacute; un sistema de correo electr&oacute;nico que es compatible con las aplicaciones de correo comunes (POP3/SMTP), el cual permite enviar correos electr&oacute;nicos tanto dentro de I2P como recibir y mandar correos de/a internet. Puedes registrar tu cuenta en <a href="http://hq.postman.i2p/">hq.postman.i2p</a>. Junto a esto tenemos <a href="/susimail/susimail">susimail</a>, un cliente an&oacute;nimo de correo que se abre en el navegador web. Ya est&aacute; configurado para el servicio de Postman.<br>Tambi&eacute;n te recomendamos nuestro nuevo sistema de correo electr&oacute;nico sin servidor <a href="http://tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a.b32.i2p/">I2P-Bote</a>, que existe en forma de plugin. Viene con una interfaz web y cifra todos los mensajes de fin a fin.</li>
+ <li class="tidylist"><b>correo electr&oacute;nico an&oacute;nimo</b> - Postman cre&oacute; un sistema de correo electr&oacute;nico que es compatible con las aplicaciones de correo comunes (POP3/SMTP), el cual permite enviar correos electr&oacute;nicos tanto dentro de I2P como recibir y mandar correos de/a internet. Puedes registrar tu cuenta en <a href="http://hq.postman.i2p/">hq.postman.i2p</a>. Junto a esto tenemos <a href="/webmail">susimail</a>, un cliente an&oacute;nimo de correo que se abre en el navegador web. Ya est&aacute; configurado para el servicio de Postman.<br>Tambi&eacute;n te recomendamos nuestro nuevo sistema de correo electr&oacute;nico sin servidor <a href="http://tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a.b32.i2p/">I2P-Bote</a>, que existe en forma de plugin. Viene con una interfaz web y cifra todos los mensajes de fin a fin.</li>
  <li class="tidylist"><b>chat an&oacute;nimo</b> - Lanza tu cliente IRC preferido y con&eacute;ctate con el servidor an&oacute;nimo en 
      <b>127.0.0.1 puerto 6668</b>.  Esto te llevar&aacute; a uno de dos servidores an&oacute;nimos de IRC 
      - y ni tu ni los dem&aacute;s usuarios sabr&aacute;n quien es el otro, ni siquiera el administrador del servidor.</li>
diff --git a/installer/resources/readme/readme_fr.html b/installer/resources/readme/readme_fr.html
index 73fa6ec621..e3346af47c 100644
--- a/installer/resources/readme/readme_fr.html
+++ b/installer/resources/readme/readme_fr.html
@@ -34,7 +34,7 @@ mandataire <code>127.0.0.1 sur le port 4444</code>, puis promenez-vous sur les s
 <a href="#eepsites">ci-dessous</a>, vous trouverez notre petite sélection de sites hébergés sur I2P.</li>
 
 <li class="tidylist"><b>Messagerie anonyme</b><br>Le système de messagerie basé sur I2P de Postman est utilisable soit 
-par le <a href="/susimail/susimail">client de messagerie I2P intégré</a> dans la console du routeur (susimail), soit en 
+par le <a href="/webmail">client de messagerie I2P intégré</a> dans la console du routeur (susimail), soit en 
 configurant n'importe quel logiciel client de messagerie compatible SMTP et POP3. Les comptes peuvent recevoir et 
 envoyer du courrier de/vers l'Internet normal. Créez au moins votre compte sur 
 <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>. En complément, 
diff --git a/installer/resources/readme/readme_nl.html b/installer/resources/readme/readme_nl.html
index c0d37721e7..3a3a9cf19c 100644
--- a/installer/resources/readme/readme_nl.html
+++ b/installer/resources/readme/readme_nl.html
@@ -9,7 +9,7 @@
 
 <li class="tidylist"><b>Invisible Internet &amp; Public Web Browsing</b><br>Op I2P kan je toegang verkrijgen tot anonieme websites (eepsites) en andere diensten (zoals; SSH over I2P, IRC, Jabber etc.), daarnaast heb je ook de mogelijkheid om je eigen dienst aan te bieden. Je kan ook anoniem toegang krijgen tot het normale Internet via de ingebouwde web proxy (outproxy). <a href="http://www.i2p2.de/htproxyports.html" target="_blank">Configureer je browser</a> voor het gebruik van de HTTP proxy op <code>127.0.0.1 poort 4444</code>, waarna je naar zowel eepsites als normale, onversleutelde <code>http://</code> websites kan surfen. Als je een aanpassing wilt maken aan de outproxy of deze wilt uitschakelen kan je de 'client tunnel' voor <code>false.i2p</code> onder het <i>Outproxies</i> gedeelte in de <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy Tunnel Editor</a>. In het "Interessante websites" gedeelte <a href="#eepsites">hier onder</a> staat een lijst met een paar van de bekende sites die op I2P gehost worden.</li>
 
-<li class="tidylist"><b>Anonieme E-Mail</b><br>Postman's I2P email systeem kan worden benaderd via <a href="/susimail/susimail">de ingebouwde email client</a>
+<li class="tidylist"><b>Anonieme E-Mail</b><br>Postman's I2P email systeem kan worden benaderd via <a href="/webmail">de ingebouwde email client</a>
 (susimail) of door het gebruik van elke andere normale email client die ondersteuning biedt voor SMTP en POP3.
 Deze accounts kunnen tevens email versturen en ontvangen naar en van het normale Internet. Voor een account, bezoek <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>. Daarnaast is er <a href="http://i2pbote.i2p/" target="_blank">I2P-Bote</a>, dit is een nieuw end-to-end versleuteld email systeem zonder centrale servers welke een webinterface en geïntegreerd adressen boek bied. Het is ontwikkeld door HungryHobo en kan worden geïnstalleerd als <a href="#plugins">plugin</a>.</li>
 
diff --git a/installer/resources/readme/readme_pt.html b/installer/resources/readme/readme_pt.html
index 2b67684206..42de327427 100644
--- a/installer/resources/readme/readme_pt.html
+++ b/installer/resources/readme/readme_pt.html
@@ -17,7 +17,7 @@
  <li class="tidylist"><b>navegar na internet</b> - I2P dispõe de um "outproxy" http - para usâ-lo, tamb&eacute;m pode empregar o proxy http no porto 4444 - Se configurar o seu navegador web para usar este proxy, pode visitar as p&aacute;ginas web de maneira anônima e o trânsito ser&aacute; roteado atravez da rede I2P.</li>
  <li class="tidylist"><b>trocar dados</b> - Ha uma <a href="i2psnark/">adaptação</a> para I2P da aplicação <a href="http://www.bittorrent.com/">BitTorrent</a> 
      <a href="http://www.klomp.org/snark/">Snark</a>.</li>
- <li class="tidylist"><b>correio eletrônico anônimo</b> - O Postman fez um sistema de correio eletrônico que é compatível com as aplicações de correio eletrônico comunes (POP3/SMTP), o qual permite de enviar correios eletrônicos tanto dentro de I2P como também receber e mandar correios desde a / para a internet. Pode registrar a sua conta aqui: <a href="http://hq.postman.i2p/">hq.postman.i2p</a>. Junto com isso temos <a href="/susimail/susimail">susimail</a>, um cliente anônimo de correio que se abre com o navegador web. Já est&aacute; configurado para o servício de Postman.<br>Tamb&eacute;m lhe recomendamos o nosso novo sistema de correio eletrônico sem servidor <a href="http://tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a.b32.i2p/">I2P-Bote</a>, que existe em forma de um plugin. Vem com uma interface web e criptografa todas as mensagens de final a final.</li>
+ <li class="tidylist"><b>correio eletrônico anônimo</b> - O Postman fez um sistema de correio eletrônico que é compatível com as aplicações de correio eletrônico comunes (POP3/SMTP), o qual permite de enviar correios eletrônicos tanto dentro de I2P como também receber e mandar correios desde a / para a internet. Pode registrar a sua conta aqui: <a href="http://hq.postman.i2p/">hq.postman.i2p</a>. Junto com isso temos <a href="/webmail">susimail</a>, um cliente anônimo de correio que se abre com o navegador web. Já est&aacute; configurado para o servício de Postman.<br>Tamb&eacute;m lhe recomendamos o nosso novo sistema de correio eletrônico sem servidor <a href="http://tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a.b32.i2p/">I2P-Bote</a>, que existe em forma de um plugin. Vem com uma interface web e criptografa todas as mensagens de final a final.</li>
  <li class="tidylist"><b>bate-papo anônimo</b> - Lance o seu cliente IRC preferido e con&eacute;cte-se com o servidor anônimamente en 
      <b>127.0.0.1 porto 6668</b>.  Isto lhe levar&aacute; a um dos dois servidores anônimos de IRC oficiales em I2P 
      - e nem você nem os outros usuários sabrão quem é o outro, nem mesmo o administrador do servidor!</li>
diff --git a/installer/resources/readme/readme_sv.html b/installer/resources/readme/readme_sv.html
index 55d07efa5c..c7277ff5ea 100644
--- a/installer/resources/readme/readme_sv.html
+++ b/installer/resources/readme/readme_sv.html
@@ -43,7 +43,7 @@ fungerar med vanliga email-klienter
 och fr&aring;n det vanliga Internet!
      skaffa dig ett konto hos <a 
 href="http://hq.postman.i2p/">hq.postman.i2p</a>.
-     Vi skickar med <a href="/susimail/susimail">susimail</a>,
+     Vi skickar med <a href="/webmail">susimail</a>,
      som &auml;r en webb-baserad anonymt inriktad pop3/smtp-klient, inst&auml;lld 
 till att ansluta till postmans email-tj&auml;nst.</li>
  <li><b>chatta anonymt</b> - starta din IRC-klient och anslut till 
diff --git a/installer/resources/readme/readme_zh.html b/installer/resources/readme/readme_zh.html
index 7ba9c528c5..f928843f7c 100644
--- a/installer/resources/readme/readme_zh.html
+++ b/installer/resources/readme/readme_zh.html
@@ -15,7 +15,7 @@
       I2P网络中还有很多其他站点 - 访问上面的网站你会找到更多,别忘了收藏你喜爱的 I2P 网站方便访问。<br>
  <li><b>浏览 Web 网页</b> - 目前 IP2 网络中的出口代理("Outproxy")只有一个,它的HTTP代理映射在本机的4444端口上。- 将浏览器的代理设置指向为上述地址(127.0.0.1:4444)后,访问任何普通链接即可 - 您的HTTP请求将在 I2P 网络内部传递。</li>
  <li><b>文件交换</b> - I2P的其中一个本地&nbsp;<a href="/i2psnark">端口</a>&nbsp;用于内置的&nbsp;<a href="http://www.klomp.org/snark/">Snark</a> <a href="http://www.bittorrent.com/">BitTorrent</a> 客户端。</li>
- <li><b>匿名电邮</b> - 由POSTMAN维护的邮件系统支持普通邮件客户端(POP3 / SMTP),这个系统可以在 I2P 网络内部收发 Email 也可以收发来自外部 Internet 的邮件!建立I2P邮件帐户请到 <a href="http://hq.postman.i2p/">hq.postman.i2p</a> 申请。I2P中集成有Web界面的pop3/stmp邮件客户端 <a href="/susimail/susimail">SUSIMail</a>,并配置为使用POSTMAN 的邮件服务。</li>
+ <li><b>匿名电邮</b> - 由POSTMAN维护的邮件系统支持普通邮件客户端(POP3 / SMTP),这个系统可以在 I2P 网络内部收发 Email 也可以收发来自外部 Internet 的邮件!建立I2P邮件帐户请到 <a href="http://hq.postman.i2p/">hq.postman.i2p</a> 申请。I2P中集成有Web界面的pop3/stmp邮件客户端 <a href="/webmail">SUSIMail</a>,并配置为使用POSTMAN 的邮件服务。</li>
  <li><b>匿名聊天</b> - 打开你的 IRC 聊天程序,连接至 <b>127.0.0.1:6668&nbsp;</b>即可访问I2P的匿名聊天室,如果您的聊天客户端配置错误泄露IP(DDC,MSG)我们的匿名服务器会自动过滤掉这些数据不让对方发现你,如果您的IRC设置正确无论服务器还是其他聊天的人都不知道您在哪里。</li>
  <li><b>匿名博客</b> - 参见 <a href="http://syndie.i2p2.de/">Syndie</a></li>
  <li>以及其他服务。</li>
diff --git a/installer/resources/themes/susidns/light/susidns.css b/installer/resources/themes/susidns/light/susidns.css
index e39060eaf5..5df442434b 100644
--- a/installer/resources/themes/susidns/light/susidns.css
+++ b/installer/resources/themes/susidns/light/susidns.css
@@ -4,6 +4,11 @@ body {
 	color:#001;
 }
 
+body.iframed {
+	background: transparent !important;
+	margin: 0;
+}
+
 p {
 	color:black;
 	line-height:12pt;
@@ -121,6 +126,10 @@ p.footer {
   -moz-box-shadow: inset 0px 0px 1px 0px #002;
 }
 
+.iframed .page {
+  margin: 0 20px;
+}
+
 input[type=submit] {
      border: 1px outset #999;
      background: #ddf;
diff --git a/installer/resources/themes/susimail/light/susimail.css b/installer/resources/themes/susimail/light/susimail.css
index 8af8b1ae0e..f915375727 100644
--- a/installer/resources/themes/susimail/light/susimail.css
+++ b/installer/resources/themes/susimail/light/susimail.css
@@ -4,6 +4,11 @@ body {
 	font-family:"Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
 }
 
+body.iframed {
+	background: transparent !important;
+	margin: 0;
+}
+
 li {
 
 	color:#001;
@@ -112,6 +117,10 @@ pre {
   text-align: center;
 }
 
+.iframed .page {
+  margin: 0 20px;
+}
+
 table {
   text-align: justify;
   width: 100%;
-- 
GitLab