in community/document-readers/spring-ai-alibaba-starter-document-reader-email/src/main/java/com/alibaba/cloud/ai/reader/email/eml/EmailParser.java [251:292]
public String getEmailContent(Part part, boolean preferHtml) throws MessagingException, IOException {
String htmlContent = null;
String textContent = null;
Object content = part.getContent();
if (content instanceof String) {
// Check if content is HTML
String contentType = part.getContentType().toLowerCase();
if (contentType.contains("text/html")) {
htmlContent = (String) content;
}
else {
textContent = (String) content;
}
}
else if (content instanceof Multipart) {
Multipart multipart = (Multipart) content;
for (int i = 0; i < multipart.getCount(); i++) {
Part bodyPart = multipart.getBodyPart(i);
String contentType = bodyPart.getContentType().toLowerCase();
if (contentType.contains("text/html")) {
htmlContent = new String(bodyPart.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
}
else if (contentType.contains("text/plain")) {
textContent = new String(bodyPart.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
}
}
}
// Parse HTML content if available and preferred
if (htmlContent != null && (preferHtml || textContent == null)) {
return parseHtmlContent(htmlContent);
}
// Return plain text if available
if (textContent != null) {
return textContent;
}
return "";
}