Sent Folder resolved

This commit is contained in:
2024-11-05 21:04:28 +05:30
parent d9c96d4c85
commit 7378a6e4ee
3 changed files with 71 additions and 7 deletions

View File

@@ -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

View File

@@ -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<Void> {
private EmailAccount emailAccount;
@@ -57,7 +62,7 @@ public class EmailSendingService extends Service<Void> {
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<Void> {
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<Void> {
};
}
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();
}
}
}

View File

@@ -54,10 +54,12 @@ public class MessageRendererService extends Service<Object>{
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<Object>{
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();
@@ -92,10 +96,11 @@ public class MessageRendererService extends Service<Object>{
private boolean isSimpleType(String contentType) {
if(contentType.contains("TEXT/HTML") ||
contentType.contains("mixed") ||
contentType.contains("text")) {
return true;
} else return false;
// contentType.contains("mixed") ||
}
private boolean isMultipartType(String contentType) {