diff --git a/src/main/java/com/secure_mailer/backend/ValidatorClient.java b/src/main/java/com/secure_mailer/backend/ValidatorClient.java index 45e4fe8..3ca8b7a 100644 --- a/src/main/java/com/secure_mailer/backend/ValidatorClient.java +++ b/src/main/java/com/secure_mailer/backend/ValidatorClient.java @@ -144,6 +144,7 @@ public class ValidatorClient { this.emlHash = (this.emlHash).substring(0, 100); System.out.println("Eml Hash : "+this.emlHash); + System.out.println("Eml Hash size : "+this.emlHash.length()); String[] data = new String[] { this.emlHash diff --git a/src/main/java/com/secure_mailer/backend/service/EmailSendingService.java b/src/main/java/com/secure_mailer/backend/service/EmailSendingService.java index 426b6d7..2b1d715 100644 --- a/src/main/java/com/secure_mailer/backend/service/EmailSendingService.java +++ b/src/main/java/com/secure_mailer/backend/service/EmailSendingService.java @@ -22,6 +22,11 @@ import javafx.concurrent.Task; import javax.crypto.SecretKey; import java.util.Base64; +import java.util.Properties; +import javax.mail.Folder; +import javax.mail.Session; +import javax.mail.Store; + public class EmailSendingService extends Service { private EmailAccount emailAccount; @@ -57,7 +62,7 @@ public class EmailSendingService extends Service { protected Void call() throws Exception { try { - System.out.println("From email id : "+emailAccount.getAddress()); +// System.out.println("From email id : "+emailAccount.getAddress()); MimeMessage mimeMessage = new MimeMessage(emailAccount.getSession()); mimeMessage.setFrom(new InternetAddress(emailAccount.getAddress()+"@peachy.in.net")); mimeMessage.addRecipients(Message.RecipientType.TO, recipient); @@ -96,6 +101,9 @@ public class EmailSendingService extends Service { emailAccount.getPassword()); transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients()); transport.close(); + + storeInSentFolder("peachy.in.net", emailAccount.getAddress(), emailAccount.getPassword(), mimeMessage); + } catch(MessagingException e) { e.printStackTrace(); } catch (Exception e) { @@ -105,4 +113,54 @@ public class EmailSendingService extends Service { }; } + + private static void storeInSentFolder(String imapHost, String username, String password, MimeMessage message) { + // IMAP server properties + Properties imapProps = new Properties(); + imapProps.put("mail.store.protocol", "imaps"); + imapProps.put("mail.imap.host", imapHost); + imapProps.put("mail.imap.port", "993"); + imapProps.put("mail.imap.ssl.enable", "true"); // Use SSL for IMAP + + imapProps.setProperty("mail.mime.encodeparameters", "true"); + // properties.setProperty("mail.mime.decodeparameters","true"); + imapProps.setProperty("mail.mime.encodefilename", "true"); + // properties.setProperty("mail.mime.decodefilename","true"); + + try { + // Connect to the IMAP store + Session session = Session.getDefaultInstance(imapProps); + Store store = session.getStore("imaps"); + store.connect(username, password); + + // Open the "Sent" folder + Folder sentFolder = store.getFolder("Sent"); // Adjust based on provider's folder name + if (!sentFolder.exists()) { + sentFolder.create(Folder.HOLDS_MESSAGES); + } + sentFolder.open(Folder.READ_WRITE); + + try { + + sentFolder.appendMessages(new Message[]{message}); + // Message[] msgs = folder.getMessages(); + //message.setFlag(FLAGS.Flag.RECENT, true); + System.out.println("Msg send and saved ...."); + + } catch (Exception ignore) { + System.out.println("error processing message " + ignore.getMessage()); + } finally { + store.close(); + // folder.close(false); + } + + // Close the folder and store connection + sentFolder.close(false); + store.close(); + + } catch (MessagingException e) { + e.printStackTrace(); + } + } + } \ No newline at end of file diff --git a/src/main/java/com/secure_mailer/backend/service/MessageRendererService.java b/src/main/java/com/secure_mailer/backend/service/MessageRendererService.java index 053d559..0cc141a 100644 --- a/src/main/java/com/secure_mailer/backend/service/MessageRendererService.java +++ b/src/main/java/com/secure_mailer/backend/service/MessageRendererService.java @@ -54,10 +54,12 @@ public class MessageRendererService extends Service{ String contentType = message.getContentType(); if(isSimpleType(contentType)){ - if( emailMessage.getIsAuthenticated() ) + if( emailMessage.getIsAuthenticated() ) { stringBuffer.append(message.getContent().toString()); - else + } + else { stringBuffer.append(encryptMessage(message.getContent().toString())); + } } else if (isMultipartType(contentType)) { Multipart multipart = (Multipart) message.getContent(); @@ -71,10 +73,12 @@ public class MessageRendererService extends Service{ String contentType = bodyPart.getContentType(); if (isSimpleType(contentType)) { - if( emailMessage.getIsAuthenticated() ) + if( emailMessage.getIsAuthenticated() ) { stringBuffer.append(bodyPart.getContent().toString()); - else + } + else { stringBuffer.append(encryptMessage(bodyPart.getContent().toString())); + } } else if (isMultipartType(contentType)){ Multipart multipart2 = (Multipart) bodyPart.getContent(); @@ -91,11 +95,12 @@ public class MessageRendererService extends Service{ } private boolean isSimpleType(String contentType) { - if(contentType.contains("TEXT/HTML") || - contentType.contains("mixed") || + if(contentType.contains("TEXT/HTML") || contentType.contains("text")) { return true; } else return false; + +// contentType.contains("mixed") || } private boolean isMultipartType(String contentType) {