diff --git a/.gitignore b/.gitignore index f0ca64e..255019a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /.idea/ +/.run/ **/target/ -*.env \ No newline at end of file +*.env +*.override.yaml \ No newline at end of file diff --git a/src/main/java/com/olexyn/burnsmail/BurnsMailApplication.java b/src/main/java/com/olexyn/burnsmail/BurnsMailApplication.java index e7142bf..c2edd11 100644 --- a/src/main/java/com/olexyn/burnsmail/BurnsMailApplication.java +++ b/src/main/java/com/olexyn/burnsmail/BurnsMailApplication.java @@ -1,7 +1,9 @@ package com.olexyn.burnsmail; +import com.olexyn.burnsmail.mail.EmailService; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.EnableAspectJAutoProxy; @SpringBootApplication @@ -9,8 +11,24 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; @EnableAspectJAutoProxy(proxyTargetClass = true) public class BurnsMailApplication { - public static void main(String[] args) { - SpringApplication.run(BurnsMailApplication.class, args); + public static void main(String[] args) throws InterruptedException { + ConfigurableApplicationContext context = SpringApplication.run(BurnsMailApplication.class, args); + + Thread.sleep(10000L); + // Retrieve the EmailService bean + EmailService emailService = context.getBean(EmailService.class); + + // Call the readEmails method + try { + emailService.readEmails(); + } catch (Exception e) { + e.printStackTrace(); + // Handle exceptions as needed + } + + // Close the application context + context.close(); + } } diff --git a/src/main/java/com/olexyn/burnsmail/mail/EmailService.java b/src/main/java/com/olexyn/burnsmail/mail/EmailService.java new file mode 100644 index 0000000..e345b5f --- /dev/null +++ b/src/main/java/com/olexyn/burnsmail/mail/EmailService.java @@ -0,0 +1,50 @@ +package com.olexyn.burnsmail.mail; + +import org.springframework.stereotype.Service; + +import javax.mail.Flags; +import javax.mail.Folder; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.Store; +import javax.mail.search.FlagTerm; +import java.io.IOException; +import java.util.Properties; + + + +@Service +public class EmailService { + + + public void readEmails() throws MessagingException, IOException { + Properties properties = new Properties(); + properties.setProperty("mail.store.protocol", "imaps"); + + Session session = Session.getDefaultInstance(properties, null); + Store store = session.getStore("imaps"); + store.connect( + System.getenv("spring.mail.host"), + System.getenv("spring.mail.username"), + System.getenv("spring.mail.password") + ); + + Folder inbox = store.getFolder("INBOX"); + inbox.open(Folder.READ_ONLY); + + // Fetch unread messages + Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false)); + + for (Message message : messages) { + // Process each email message + System.out.println("Subject: " + message.getSubject()); + System.out.println("From: " + message.getFrom()[0]); + System.out.println("Body: " + message.getContent()); + } + + // Close resources + inbox.close(false); + store.close(); + } +} \ No newline at end of file