]> WPIA git - gigi.git/blob - src/org/cacert/gigi/email/TestEmailProvider.java
Adding automated system bootup tests.
[gigi.git] / src / org / cacert / gigi / email / TestEmailProvider.java
1 package org.cacert.gigi.email;
2
3 import java.io.DataOutputStream;
4 import java.io.IOException;
5 import java.net.InetAddress;
6 import java.net.ServerSocket;
7 import java.net.Socket;
8 import java.util.Properties;
9
10 class TestEmailProvider extends EmailProvider {
11         ServerSocket servs;
12         Socket client;
13         DataOutputStream out;
14         protected TestEmailProvider(Properties props) {
15                 try {
16                         servs = new ServerSocket(Integer.parseInt(props
17                                         .getProperty("emailProvider.port")), 10,
18                                         InetAddress.getByName("127.0.0.1"));
19                 } catch (IOException e) {
20                         e.printStackTrace();
21                 }
22         }
23         @Override
24         public synchronized void sendmail(String to, String subject,
25                         String message, String from, String replyto, String toname,
26                         String fromname, String errorsto, boolean extra) throws IOException {
27                 boolean sent = false;
28                 while (!sent) {
29                         if (client == null || client.isClosed()) {
30                                 client = servs.accept();
31                                 out = new DataOutputStream(client.getOutputStream());
32                         }
33                         try {
34                                 write(to);
35                                 write(subject);
36                                 write(message);
37                                 write(from);
38                                 write(replyto);
39                                 out.flush();
40                                 sent = true;
41                         } catch (IOException e) {
42                                 client = null;
43                         }
44                 }
45         }
46         private void write(String to) throws IOException {
47                 if (to == null) {
48                         out.writeUTF("<null>");
49                 } else {
50                         out.writeUTF(to);
51                 }
52         }
53
54 }