0

I'm trying to use MimeMessageParser to parse HtmlEmail to get Html and Plain text body parts:

def emailForAutomation(email: HtmlEmail): String = {

  email.buildMimeMessage()
  val mimeMessage = email.getMimeMessage()

  val parser = new MimeMessageParser(mimeMessage)
  parser.parse()

  val subject = parser.getSubject()
  val body = parser.getHtmlContent()
  val txt  = parser.getPlainContent()

However, parser.parse() throws

java.lang.ClassCastException: javax.mail.internet.MimeMultipart cannot be cast to java.lang.String
    at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:176) ~[commons-email-1.3.2.jar:1.3.2]
    at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:85) ~[commons-email-1.3.2.jar:1.3.2]
    at utils.EmailSender$.emailForAutomation(EmailSender.scala:382) ~[classes/:na]

What am I doing wrong there? The email is built with apache-common-email API:

val email = new HtmlEmail() // apache-commons-email

email.setHostName(smtpHost)
email.setSmtpPort(smtpPort)

email.setHtmlMsg(html)
email.setTextMsg(plainTextBody)

emailForAutomation(email)  // dump email to file for automation testing
alboko
  • 488
  • 5
  • 15

1 Answers1

0

Its a bug in apache-commons-email 1.3.2.

salyh
  • 2,095
  • 1
  • 17
  • 31