From 9cf823b469380252ede10b2a586611a616f1b919 Mon Sep 17 00:00:00 2001 From: Hizenberg469 Date: Wed, 6 Nov 2024 19:52:31 +0530 Subject: [PATCH] attachment problem resolved --- .../backend/service/EmailSendingService.java | 2 ++ .../service/MessageRendererService.java | 14 +++++++++---- .../frontend/MainWindowController.java | 20 +++++++++++++------ 3 files changed, 26 insertions(+), 10 deletions(-) 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 2b1d715..c3c3a53 100644 --- a/src/main/java/com/secure_mailer/backend/service/EmailSendingService.java +++ b/src/main/java/com/secure_mailer/backend/service/EmailSendingService.java @@ -26,6 +26,7 @@ import java.util.Properties; import javax.mail.Folder; import javax.mail.Session; import javax.mail.Store; +import javax.mail.Part; public class EmailSendingService extends Service { @@ -90,6 +91,7 @@ public class EmailSendingService extends Service { DataSource source = new FileDataSource(file.getAbsolutePath()); mimeBodyPart.setDataHandler(new DataHandler(source)); mimeBodyPart.setFileName(file.getName()); + mimeBodyPart.setDisposition(Part.ATTACHMENT); multipart.addBodyPart(mimeBodyPart); } } 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 0cc141a..97c996d 100644 --- a/src/main/java/com/secure_mailer/backend/service/MessageRendererService.java +++ b/src/main/java/com/secure_mailer/backend/service/MessageRendererService.java @@ -20,6 +20,8 @@ import javax.mail.internet.MimeBodyPart; import com.secure_mailer.frontend.EmailMessage; import javafx.concurrent.Service; import javafx.concurrent.Task; +import javax.mail.Part; + public class MessageRendererService extends Service{ private EmailMessage emailMessage; @@ -71,7 +73,13 @@ public class MessageRendererService extends Service{ for (int i = multipart.getCount() - 1; i >=0; i--) { BodyPart bodyPart = multipart.getBodyPart(i); String contentType = bodyPart.getContentType(); - if (isSimpleType(contentType)) { + + // Check if it is an attachment + String disposition = bodyPart.getDisposition(); + if (disposition != null && disposition.equalsIgnoreCase(Part.ATTACHMENT) ) { + MimeBodyPart mbp = (MimeBodyPart) bodyPart; + if (!emailMessage.isAttachmentLoaded())emailMessage.addAttachment(mbp); + } else if (isSimpleType(contentType)) { if( emailMessage.getIsAuthenticated() ) { stringBuffer.append(bodyPart.getContent().toString()); @@ -83,9 +91,7 @@ public class MessageRendererService extends Service{ } else if (isMultipartType(contentType)){ Multipart multipart2 = (Multipart) bodyPart.getContent(); loadMultipart(multipart2,stringBuffer); - } else if (!isTextPlain(contentType)) { - MimeBodyPart mbp = (MimeBodyPart) bodyPart; - if (!emailMessage.isAttachmentLoaded())emailMessage.addAttachment(mbp); +// } else if (!isTextPlain(contentType)) { } } } diff --git a/src/main/java/com/secure_mailer/frontend/MainWindowController.java b/src/main/java/com/secure_mailer/frontend/MainWindowController.java index 5ab7284..2bc3d56 100644 --- a/src/main/java/com/secure_mailer/frontend/MainWindowController.java +++ b/src/main/java/com/secure_mailer/frontend/MainWindowController.java @@ -65,6 +65,8 @@ import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; +import javax.mail.Part; + import java.util.List; import javafx.fxml.FXMLLoader; @@ -718,20 +720,26 @@ public class MainWindowController extends BaseController implements Initializabl private String loadMultipart(Multipart multipart) throws MessagingException, IOException { String msg = ""; - for (int i = 0; i < multipart.getCount() ; i++) { + for (int i = multipart.getCount() - 1; i >= 0 ; i--) { BodyPart bodyPart = multipart.getBodyPart(i); String contentType = bodyPart.getContentType(); - if (isSimpleType(contentType)) { + + // Check if it is an attachment + String disposition = bodyPart.getDisposition(); + if (disposition != null && disposition.equalsIgnoreCase(Part.ATTACHMENT)) { + + } else if (isSimpleType(contentType)) { msg = bodyPart.getContent().toString(); } else if (isMultipartType(contentType)){ Multipart multipart2 = (Multipart) bodyPart.getContent(); msg = loadMultipart(multipart2); - } else if (!isTextPlain(contentType)) { -// MimeBodyPart mbp = (MimeBodyPart) bodyPart; -// if (!emailMessage.isAttachmentLoaded())emailMessage.addAttachment(mbp); - } + } +// } else if (!isTextPlain(contentType)) { +//// MimeBodyPart mbp = (MimeBodyPart) bodyPart; +//// if (!emailMessage.isAttachmentLoaded())emailMessage.addAttachment(mbp); +// } } return msg;