diff --git a/src/main/java/com/mockmock/htmlbuilder/MailListHtmlBuilder.java b/src/main/java/com/mockmock/htmlbuilder/MailListHtmlBuilder.java
index e2e7194..b11175c 100644
--- a/src/main/java/com/mockmock/htmlbuilder/MailListHtmlBuilder.java
+++ b/src/main/java/com/mockmock/htmlbuilder/MailListHtmlBuilder.java
@@ -35,6 +35,7 @@ public String build()
output.append("
From | \n");
output.append(" To | \n");
output.append(" Subject | \n");
+ output.append(" Details | \n");
output.append(" Action | \n");
output.append(" \n");
output.append(" \n");
@@ -77,7 +78,8 @@ private String buildMailRow(MockMail mail)
"\n" +
" | " + fromOutput + " | \n" +
" " + toOutput + " | \n" +
- " " + subjectOutput + " | \n" +
+ " " + subjectOutput + " | \n" +
+ " Details | \n" +
" Delete | \n" +
"
";
}
diff --git a/src/main/java/com/mockmock/mail/MockMail.java b/src/main/java/com/mockmock/mail/MockMail.java
index 32739d7..7b51434 100644
--- a/src/main/java/com/mockmock/mail/MockMail.java
+++ b/src/main/java/com/mockmock/mail/MockMail.java
@@ -13,6 +13,14 @@ public class MockMail implements Comparable
private String rawMail;
private MimeMessage mimeMessage;
private long receivedTime;
+ private String fail;
+
+ public String getFail(){
+ return fail;
+ }
+ public void setFail(String fail){
+ this.fail = fail;
+ }
public long getId()
{
diff --git a/src/main/java/com/mockmock/mail/MockMockMessageHandlerFactory.java b/src/main/java/com/mockmock/mail/MockMockMessageHandlerFactory.java
index 62ce824..b3c4aa6 100644
--- a/src/main/java/com/mockmock/mail/MockMockMessageHandlerFactory.java
+++ b/src/main/java/com/mockmock/mail/MockMockMessageHandlerFactory.java
@@ -21,7 +21,7 @@
@Service
public class MockMockMessageHandlerFactory implements MessageHandlerFactory
{
- private EventBus eventBus;
+ private final EventBus eventBus;
private Settings settings;
@Autowired
@@ -57,7 +57,7 @@ public MockMockHandler(MessageContext context)
this.mockMail = new MockMail();
// give the mockmail a unique id (currently its just a timestamp in ms)
- this.mockMail.setId(DateTime.now().getMillis());
+ this.mockMail.setId(System.nanoTime());
}
/**
@@ -101,19 +101,19 @@ public void recipient(String recipient) throws RejectException
* Called when the DATA part of the SMTP exchange begins.
* @param data InputStream
* @throws RejectException never
- * @throws IOException if there is a problem getting the message contents
*/
@Override
- public void data(InputStream data) throws RejectException, IOException
+ public void data(InputStream data) throws RejectException
{
- String rawMail = this.convertStreamToString(data);
- mockMail.setRawMail(rawMail);
-
- Session session = Session.getDefaultInstance(new Properties());
- InputStream is = new ByteArrayInputStream(rawMail.getBytes());
-
+
try
{
+ String rawMail = this.convertStreamToString(data);
+ mockMail.setRawMail(rawMail);
+
+ Session session = Session.getDefaultInstance(new Properties());
+ InputStream is = new ByteArrayInputStream(rawMail.getBytes());
+
MimeMessage message = new MimeMessage(session, is);
mockMail.setSubject(message.getSubject());
mockMail.setMimeMessage(message);
@@ -155,9 +155,9 @@ else if(contentType.matches("text/html.*"))
}
}
}
- catch (MessagingException e)
+ catch (MessagingException | IOException e)
{
- e.printStackTrace();
+ mockMail.setFail(e.getClass().getSimpleName() + ": " + e.getMessage());
}
if(settings.getShowEmailInConsole())
@@ -186,6 +186,9 @@ public void done()
return;
}
+ if(mockMail.getFail() != null){
+ return;
+ }
// set the received date
mockMail.setReceivedTime(DateTime.now().getMillis());
@@ -202,7 +205,7 @@ public void done()
* @param is InputStream
* @return String
*/
- protected String convertStreamToString(InputStream is)
+ protected String convertStreamToString(InputStream is) throws MessagingException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder stringBuilder = new StringBuilder();
@@ -218,7 +221,7 @@ protected String convertStreamToString(InputStream is)
}
catch (IOException e)
{
- e.printStackTrace();
+ throw new MessagingException("Error while converting email", e);
}
return stringBuilder.toString();