toDocument method

Document toDocument(
  1. MimeMessage message
)

Transforms the DOM or plain text of the given message.

Implementation

Document toDocument(MimeMessage message) {
  var html =
      configuration.preferPlainText ? null : message.decodeTextHtmlPart();
  if (html == null) {
    var textPart = message.decodeTextPlainPart();
    if (textPart == null && configuration.preferPlainText) {
      textPart = message.decodeTextHtmlPart();
      if (textPart != null) {
        textPart = Document.html(textPart).body?.innerHtml;
        if (textPart != null) {
          textPart = HtmlToPlainTextConverter.convert(textPart);
        }
      }
    }
    if (textPart == null) {
      if (message.hasInlineParts()) {
        textPart = '';
      } else {
        textPart = configuration.emptyMessageText;
      }
    } else {
      textPart = transformPlainText(textPart, message);
    }
    html =
        configuration.plainTextHtmlTemplate.replaceFirst('{text}', textPart);
  } else if (configuration.enableDarkMode) {
    // hack to remove any white bgcolor values:
    html = html.replaceAll('bgcolor="#FFFFFF"', '');
    html = html.replaceAll('bgcolor="#ffffff"', '');
  }
  final document = parse(html);
  // if (configuration.blockExternalImages) {
  //   blockExternalImageProcessor.process(document, this);
  // }
  transformDocument(document, message);
  //TODO integrate other inline parts

  return document;
}