String message;
String from;
String replyto;
- public TestMail(String to, String subject, String message, String from,
- String replyto) {
+
+ public TestMail(String to, String subject, String message, String from, String replyto) {
this.to = to;
this.subject = subject;
this.message = message;
this.from = from;
this.replyto = replyto;
}
+
public String getTo() {
return to;
}
+
public String getSubject() {
return subject;
}
+
public String getMessage() {
return message;
}
+
public String getFrom() {
return from;
}
+
public String getReplyto() {
return replyto;
}
+
public String extractLink() {
- Pattern link = Pattern.compile("http://[^\\s]+(?=\\s)");
+ Pattern link = Pattern.compile("https?://[^\\s]+(?=\\s)");
Matcher m = link.matcher(getMessage());
m.find();
return m.group(0);
}
}
+
private Socket s;
private DataInputStream dis;
private DataOutputStream dos;
dos = new DataOutputStream(s.getOutputStream());
new Thread(this).start();
}
+
LinkedBlockingQueue<TestMail> mails = new LinkedBlockingQueue<TestEmailReciever.TestMail>();
public TestMail recieve() throws InterruptedException {
return mails.poll(5, TimeUnit.SECONDS);
}
+
@Override
public void run() {
try {
} else if (type.equals("challengeAddrBox")) {
String email = dis.readUTF();
if (approveRegex.matcher(email).matches()) {
- System.out.println("approving mbox: " + email);
dos.writeUTF("OK");
} else {
- System.out.println("rejecting mbox: " + email);
- dos.writeUTF("FAIL");
+ dos.writeUTF(error);
}
dos.flush();
} else if (type.equals("ping")) {
}
}
} catch (IOException e) {
- e.printStackTrace();
+ if (!closed) {
+ e.printStackTrace();
+ }
}
}
+
+ String error = "FAIL";
+
+ public void setEmailCheckError(String error) {
+ this.error = error;
+ }
+
Pattern approveRegex = Pattern.compile(".*");
+
public void setApproveRegex(Pattern approveRegex) {
this.approveRegex = approveRegex;
}
public void clearMails() {
mails.clear();
}
+
public void reset() {
clearMails();
+ error = "FAIL";
approveRegex = Pattern.compile(".*");
}
+ boolean closed = false;
+
+ public void destroy() {
+ try {
+ closed = true;
+ s.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
}