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