X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Femail%2FTestEmailProvider.java;fp=src%2Forg%2Fcacert%2Fgigi%2Femail%2FTestEmailProvider.java;h=e37e802a079e9f69f22f0aaa5c9ea191ffb6208f;hb=634b7f75c8fc2ed8799bad74731278fb59198c48;hp=0000000000000000000000000000000000000000;hpb=69e01f194e6183eccb8c7ca6f75fbe1132e0f194;p=gigi.git diff --git a/src/org/cacert/gigi/email/TestEmailProvider.java b/src/org/cacert/gigi/email/TestEmailProvider.java new file mode 100644 index 00000000..e37e802a --- /dev/null +++ b/src/org/cacert/gigi/email/TestEmailProvider.java @@ -0,0 +1,54 @@ +package org.cacert.gigi.email; + +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.InetAddress; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.Properties; + +class TestEmailProvider extends EmailProvider { + ServerSocket servs; + Socket client; + DataOutputStream out; + protected TestEmailProvider(Properties props) { + try { + servs = new ServerSocket(Integer.parseInt(props + .getProperty("emailProvider.port")), 10, + InetAddress.getByName("127.0.0.1")); + } catch (IOException e) { + e.printStackTrace(); + } + } + @Override + public synchronized void sendmail(String to, String subject, + String message, String from, String replyto, String toname, + String fromname, String errorsto, boolean extra) throws IOException { + boolean sent = false; + while (!sent) { + if (client == null || client.isClosed()) { + client = servs.accept(); + out = new DataOutputStream(client.getOutputStream()); + } + try { + write(to); + write(subject); + write(message); + write(from); + write(replyto); + out.flush(); + sent = true; + } catch (IOException e) { + client = null; + } + } + } + private void write(String to) throws IOException { + if (to == null) { + out.writeUTF(""); + } else { + out.writeUTF(to); + } + } + +}