On Wednesday 07 November 2007 04:41:19 Robert Guerra wrote: > Does this version mean that Freemail can now be used as a plugin? If > so, would you be so kind as to describe the steps needed to add the > plugin to freenet.
It depends what you consider 'usable'! There has been a plugin that runs Freemail for a while now, although there was no documentation provided on how to run it as such. There is still functionality missing - the only thing you can do from the web interface is add accounts. To get it running, I'm not sure what the current stable version of Freenet does plugin-wise, but I think it's a question of putting the url to the Freemail plugin in the box (pick the latest from http://downloads.freenetproject.org/alpha/plugins/Freemail/, or the path with file:// in front of it to use one on your local machine) and pressing the button. On Freenet trunk, you can just select 'Freemail' from the list and press the button. After that, you can go to the plugin's web interface to add an account, and set up your mail client as before. If you want to copy settings over, copy everything from your Freemail directory to your node dir. Bear in mind that Freemail as a plugin is very alpha. By all means report bugs, but if it breaks, you get to keep all the pieces! Dave > > thanks > > regards, > > Robert > --- > Robert Guerra <rguerra at privaterra.ca> > Managing Director, Privaterra > Tel +1 416 893 0377 > > On 5-Nov-07, at 6:59 PM, dbkr at freenetproject.org wrote: > > Author: dbkr > > Date: 2007-11-05 23:59:35 +0000 (Mon, 05 Nov 2007) > > New Revision: 15698 > > > > Modified: > > trunk/apps/Freemail/src/freemail/FreemailPlugin.java > > Log: > > Use post for the add account form. > > > > > > Modified: trunk/apps/Freemail/src/freemail/FreemailPlugin.java > > =================================================================== > > --- trunk/apps/Freemail/src/freemail/FreemailPlugin.java 2007-11-05 > > 23:41:48 UTC (rev 15697) > > +++ trunk/apps/Freemail/src/freemail/FreemailPlugin.java 2007-11-05 > > 23:59:35 UTC (rev 15698) > > @@ -194,21 +194,62 @@ > > HTMLNode pageNode = pr.getPageMaker().getPageNode("Freemail > > plugin", false, null); > > HTMLNode contentNode = > > pr.getPageMaker().getContentNode(pageNode); > > > > - if(request.getParam("add").equals("Add account")) { > > - if(!(request.getParam("name").equals("") || > > request.getParam("password").equals(""))) { > > + HTMLNode addBox = contentNode.addChild("div", "class", > > "infobox"); > > + addBox.addChild("div", "class", "infobox-header", "Add > > account"); > > + > > + HTMLNode boxContent = addBox.addChild("div", "class", "infobox- > > content"); > > + HTMLNode form = pr.addFormChild(boxContent, "", > > "addAccountForm"); > > + > > + HTMLNode table = form.addChild("table", "class", "plugintable"); > > + HTMLNode tableRowName = table.addChild("tr"); > > + tableRowName.addChild("td", "Name"); > > + tableRowName.addChild("td").addChild("input", new String[] > > { "type", "name", "value", "size" }, new String[] { "text", "name", > > "", "30" }); > > + HTMLNode tableRowPassword = table.addChild("tr"); > > + tableRowPassword.addChild("td", "Password"); > > + tableRowPassword.addChild("td").addChild("input", new String[] > > { "type", "name", "value", "size" }, new String[] { "password", > > "password", "", "30" }); > > + HTMLNode tableRowDomain = table.addChild("tr"); > > + tableRowDomain.addChild("td", "Domain"); > > + tableRowDomain.addChild("td").addChild("input", new String[] > > { "type", "name", "value", "size" }, new String[] { "text", > > "domain", "", "30" }); > > + HTMLNode tableRowSubmit = table.addChild("tr"); > > + tableRowSubmit.addChild("td"); > > + tableRowSubmit.addChild("td").addChild("input", new String[] > > { "type", "name", "value" }, new String[] { "submit", "add", "Add > > account"}); > > + > > + return pageNode.generate(); > > + } > > + > > + public String handleHTTPPost(HTTPRequest request) throws > > PluginHTTPException { > > + HTMLNode pageNode = pr.getPageMaker().getPageNode("Freemail > > plugin", false, null); > > + HTMLNode contentNode = > > pr.getPageMaker().getContentNode(pageNode); > > + > > + String add = request.getPartAsString("add", 100); > > + String name = request.getPartAsString("name", 100); > > + String password = request.getPartAsString("password", 100); > > + String domain = request.getPartAsString("domain", 100); > > + > > + if(add.equals("Add account")) { > > + if(!(name.equals("") || password.equals(""))) { > > try { > > - > > AccountManager.Create(request.getParam("name")); > > - > > AccountManager.ChangePassword(request.getParam("name"), > > request.getParam("password")); > > - > > if(!request.getParam("domain").equals("")) { > > - > > AccountManager.addShortAddress(request.getParam("name"), > > request.getParam("domain")); > > + AccountManager.Create(name); > > + AccountManager.ChangePassword(name, > > password); > > + if(!domain.equals("")) { > > + > > AccountManager.addShortAddress(name, domain); > > } > > - Thread t = new Thread(new > > SingleAccountWatcher(new > > File(DATADIR, request.getParam("name"))), "Account Watcher for > > "+request.getParam("name")); > > + Thread t = new Thread(new > > SingleAccountWatcher(new > > File(DATADIR, name)), "Account Watcher for "+name); > > t.setDaemon(true); > > t.start(); > > - HTMLNode addedBox = > > contentNode.addChild("div", "class", > > "infobox"); > > - addedBox.addChild("div", "class", > > "infobox-header", "Added > > account"); > > - addedBox.addChild("div", "class", > > "infobox-content", "Account > > for " + request.getParam("name") + " is created"); > > - > > + > > + HTMLNode successBox = > > contentNode.addChild("div", "class", > > "infobox infobox-success"); > > + successBox.addChild("div", "class", > > "infobox-header", "Account > > Created"); > > + // TODO: This is not the world's best > > into message, but it's > > only temporary (hopefully...) > > + HTMLNode text = > > successBox.addChild("div", "class", "infobox- > > content"); > > + text.addChild("#", "The account "); > > + text.addChild("i", name); > > + text.addChild("#", " was created > > successfully."); > > + text.addChild("br"); > > + text.addChild("br"); > > + text.addChild("#", "You now need to > > configure your email > > client to send and receive email through " > > + + "Freemail using IMAP > > and SMTP. Freemail uses ports 3143 > > and 3025 for these " > > + + "respectively by > > default."); > > } catch (IOException ioe) { > > HTMLNode errorBox = > > contentNode.addChild("div", "class", > > "infobox infobox-error"); > > errorBox.addChild("div", "class", > > "infobox-header", "IO Error"); > > @@ -216,38 +257,23 @@ > > } catch (Exception e) { > > HTMLNode errorBox = > > contentNode.addChild("div", "class", > > "infobox-error"); > > errorBox.addChild("div", "class", > > "infobox-header", "Error"); > > - errorBox.addChild("div", "class", > > "infobox-content", "Couldn't > > change password for "+request.getParam("name")+". "+e.getMessage()); > > + errorBox.addChild("div", "class", > > "infobox-content", "Couldn't > > change password for "+name+". "+e.getMessage()); > > } > > + > > + // XXX: There doesn't seem to be a way to get > > (or set) our root > > in the web interface, > > + // so we'll just have to assume it's this > > and won't change > > + contentNode.addChild("a", "href", "/plugins/ > > freemail.FreemailPlugin", > > + "Freemail Home"); > > } else { > > HTMLNode errorBox = contentNode.addChild("div", > > "class", > > "infobox infobox-error"); > > errorBox.addChild("div", "class", > > "infobox-header", "Error"); > > errorBox.addChild("div", "class", > > "infobox-content", "Couldn't > > create account, name or password is missing"); > > } > > } > > - > > - HTMLNode addBox = contentNode.addChild("div", "class", > > "infobox"); > > - addBox.addChild("div", "class", "infobox-header", "Add > > account"); > > - HTMLNode table = addBox.addChild("div", "class", "infobox- > > content").addChild("form").addChild("table", "class", "plugintable"); > > - HTMLNode tableRowName = table.addChild("tr"); > > - tableRowName.addChild("td", "Name"); > > - tableRowName.addChild("td").addChild("input", new String[] > > { "type", "name", "value", "size" }, new String[] { "text", "name", > > "", "30" }); > > - HTMLNode tableRowPassword = table.addChild("tr"); > > - tableRowPassword.addChild("td", "Password"); > > - tableRowPassword.addChild("td").addChild("input", new String[] > > { "type", "name", "value", "size" }, new String[] { "password", > > "password", "", "30" }); > > - HTMLNode tableRowDomain = table.addChild("tr"); > > - tableRowDomain.addChild("td", "Domain"); > > - tableRowDomain.addChild("td").addChild("input", new String[] > > { "type", "name", "value", "size" }, new String[] { "text", > > "domain", "", "30" }); > > - HTMLNode tableRowSubmit = table.addChild("tr"); > > - tableRowSubmit.addChild("td"); > > - tableRowSubmit.addChild("td").addChild("input", new String[] > > { "type", "name", "value" }, new String[] { "submit", "add", "Add > > account"}); > > > > return pageNode.generate(); > > } > > > > - public String handleHTTPPost(HTTPRequest request) throws > > PluginHTTPException { > > - return null; > > - } > > - > > public String handleHTTPPut(HTTPRequest request) throws > > PluginHTTPException { > > return null; > > } > > > > _______________________________________________ > > Freemail mailing list > > Freemail at freenetproject.org > > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/freemail > > _______________________________________________ > Freemail mailing list > Freemail at freenetproject.org > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/freemail
