diff --git a/pom.xml b/pom.xml index fdd2ad0..7363188 100644 --- a/pom.xml +++ b/pom.xml @@ -72,15 +72,18 @@ 5.4.0 - com.sun.mail - javax.mail - 1.5.5 + org.springframework.boot + spring-boot-starter-mail org.projectlombok lombok provided + + org.springframework.boot + spring-boot-starter-actuator + diff --git a/src/main/java/com/pledge/torgi/service/EmailService.java b/src/main/java/com/pledge/torgi/service/EmailService.java index 3e009fd..b3349c2 100644 --- a/src/main/java/com/pledge/torgi/service/EmailService.java +++ b/src/main/java/com/pledge/torgi/service/EmailService.java @@ -60,7 +60,7 @@ public class EmailService { return; } List alreadyProcessed = emailsRepository.findTop10ByOrderByIdDesc(); - List emailData = new ReceiveEmailService("imap.gmail.com", 993, params.getFrom(), params.getToken(), params.getSpecialEmail()) + List emailData = new ReceiveEmailService("imap.gmail.com", 993, params.getFrom(), params.getToken(), params.getSpecialEmail(), log) .downloadEmails(alreadyProcessed); int sendLetters = 0; log.error("Extracted letters = {}", emailData.size()); diff --git a/src/main/java/com/pledge/torgi/service/ReceiveEmailService.java b/src/main/java/com/pledge/torgi/service/ReceiveEmailService.java index 8f4f161..0d33671 100644 --- a/src/main/java/com/pledge/torgi/service/ReceiveEmailService.java +++ b/src/main/java/com/pledge/torgi/service/ReceiveEmailService.java @@ -1,14 +1,15 @@ package com.pledge.torgi.service; import com.pledge.torgi.model.Emails; -import com.sun.mail.imap.IMAPMessage; +import jakarta.mail.internet.MimeMessage; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import jakarta.mail.*; +import jakarta.mail.internet.InternetAddress; +import jakarta.mail.internet.MimeMultipart; +import org.slf4j.Logger; -import javax.mail.*; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMultipart; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; @@ -21,14 +22,16 @@ public class ReceiveEmailService { private String password; private String specialEmail; private String protocol = "imaps"; + private Logger logger; private final Properties prop; - public ReceiveEmailService(String host, int port, String username, String password, String specialEmail) { + public ReceiveEmailService(String host, int port, String username, String password, String specialEmail, Logger logger) { prop = getServerProperties(host, port); this.username = username; this.password = password; this.specialEmail = specialEmail; + this.logger = logger; } public List downloadEmails(List alreadyProcessed) { @@ -60,7 +63,7 @@ public class ReceiveEmailService { continue; } - String messageID = ((IMAPMessage) msg).getMessageID(); + String messageID = ((MimeMessage) msg).getMessageID(); if (alreadyProcessed.stream().anyMatch(processed -> processed.getMailId().equals(messageID))) { continue; } @@ -75,16 +78,15 @@ public class ReceiveEmailService { List replyMails = new ArrayList<>(Arrays.stream(toList).map(addr -> ((InternetAddress) addr).getAddress()) .filter(email -> !email.equals(specialEmail)) .toList()); - replyMails.add(((InternetAddress)((IMAPMessage) msg).getSender()).getAddress()); + replyMails.add(((InternetAddress)((MimeMessage) msg).getSender()).getAddress()); EmailData data = new EmailData(); data.setEmailId(messageID); data.setFile(wb); data.setEmails(String.join(",", replyMails)); - System.out.println("Emails for reply: " + data.getEmails()); + logger.debug("Emails for reply: {}", data.getEmails()); result.add(data); } catch (Exception ex) { - System.out.println("No provider for protocol: " + protocol); - ex.printStackTrace(); + logger.error("Error during send mail", ex); } } @@ -92,11 +94,9 @@ public class ReceiveEmailService { folderInbox.close(false); store.close(); } catch (NoSuchProviderException ex) { - System.out.println("No provider for protocol: " + protocol); - ex.printStackTrace(); + logger.error("No provider for protocol: {}", protocol); } catch (MessagingException ex) { - System.out.println("Could not connect to the message store"); - ex.printStackTrace(); + logger.error("Could not connect to the message store", ex); } return result; } diff --git a/src/main/java/com/pledge/torgi/service/SendEmailService.java b/src/main/java/com/pledge/torgi/service/SendEmailService.java index 11bf4e9..e4a67d9 100644 --- a/src/main/java/com/pledge/torgi/service/SendEmailService.java +++ b/src/main/java/com/pledge/torgi/service/SendEmailService.java @@ -1,13 +1,14 @@ package com.pledge.torgi.service; -import javax.activation.DataHandler; -import javax.activation.DataSource; -import javax.activation.FileDataSource; -import javax.mail.*; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeBodyPart; -import javax.mail.internet.MimeMessage; -import javax.mail.internet.MimeMultipart; +import jakarta.activation.DataHandler; +import jakarta.activation.DataSource; +import jakarta.activation.FileDataSource; +import jakarta.mail.*; +import jakarta.mail.internet.InternetAddress; +import jakarta.mail.internet.MimeBodyPart; +import jakarta.mail.internet.MimeMessage; +import jakarta.mail.internet.MimeMultipart; + import java.io.File; import java.util.Properties; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fd30f26..40770ff 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,4 +12,6 @@ spring.servlet.multipart.max-file-size=20MB spring.servlet.multipart.max-request-size=20MB server.tomcat.connection-timeout=300000 server.tomcat.keep-alive-timeout=300000 -server.connection-timeout=300000 \ No newline at end of file +server.connection-timeout=300000 +management.endpoints.web.exposure.include=health,metrics,prometheus +management.endpoint.health.show-details=always \ No newline at end of file