Advertisement
Guest User

Email Parser from Dygy

a guest
May 21st, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 4.46 KB | None | 0 0
  1. private fun extractText(mimeMessage: Any): String {
  2.     when (mimeMessage) {
  3.         is MimeMessage -> {
  4.             // заготовка для сообщения
  5.             var message = "\n New Email: ["
  6.             // проверяю на нулли, чтобы не спамить лишним
  7.             if (mimeMessage.encoding !== null) {
  8.                 //   Кодировка сообщения
  9.                 message = "$message\n Language: " + mimeMessage.encoding
  10.             }
  11.             if (mimeMessage.sender !== null) {
  12.                 //  Автор сообщения
  13.                 message = "$message\n From: " + mimeMessage.sender
  14.             }
  15.             if (mimeMessage.sentDate !== null) {
  16.                 //  Дата отправки сообщения
  17.                 message = "$message\n Sent Date: " + mimeMessage.sentDate.toString()
  18.             }
  19.             if (mimeMessage.receivedDate !== null) {
  20.                 //    Дата получения сообщения
  21.                 message = "$message\n Receive Date: " + mimeMessage.receivedDate.toString()
  22.             }
  23.             if (mimeMessage.subject !== null) {
  24.                 //  Тема сообщения
  25.                 message = "$message\n Subject: " + mimeMessage.subject
  26.             }
  27.             if (mimeMessage.contentLanguage !== null) {
  28.                 //  Язык контента в сообщении
  29.                 message = "$message\n encoding: " + mimeMessage.contentLanguage
  30.             }
  31.             if (mimeMessage.content is Multipart) {
  32.                 val mp = mimeMessage.content as Multipart
  33.                 val count = mp.count
  34.                 // итерация по e-mail'у
  35.                 for (i in 0 until count) {
  36.                     message = "$message\n" + extractText(mp.getBodyPart(i) as MimeBodyPart)
  37.                 }
  38.             }
  39.             //Если тип данных простой текст или html. У меня случились проблемы при формирование мультипарта,
  40.             //программа всегда выкидывала text/plain в второй функции, по этому я попробовал объединить
  41.             //функцоинал, и в целом, учитывая что у меня подгорают дедлайны, я решил,
  42.             //что это удовлетворительно.
  43.             else if (mimeMessage.isMimeType("text/plain") || mimeMessage.isMimeType("text/html")) {
  44.                 message = "$message\n Text: " + Jsoup.parse(mimeMessage.content.toString()).text()
  45.             }
  46.             if (mimeMessage.description !== null) {
  47.                 //  Дополнение к сообщению
  48.                 message = "$message\n Message Description: " + mimeMessage.description
  49.             }
  50.             return "$message \n ]"
  51.         }
  52.         // заготовка для сообщения
  53.         is MimeBodyPart -> {
  54.             var message = "\n  New Part Of Email: ["
  55.             // проверяю на нулли, чтобы не спамить лишним
  56.             if (mimeMessage.encoding !== null) {
  57.                 //   Кодировка сообщения
  58.                 message = "$message\n  encoding: " + mimeMessage.encoding
  59.             }
  60.             if (mimeMessage.contentLanguage !== null) {
  61.                 //  Язык контента в сообщении
  62.                 message = "$message\n  Language: " + mimeMessage.contentLanguage
  63.             }
  64.             println(mimeMessage.contentType)
  65.             if (mimeMessage.content is Multipart) {
  66.                 val mp = mimeMessage.content as Multipart
  67.                 val count = mp.count
  68.                 // рекурсия
  69.                 for (i in 0 until count) {
  70.                     message = "$message\n" + extractText(mp.getBodyPart(i) as MimeBodyPart)
  71.                 }
  72.             } else if (mimeMessage.isMimeType("text/plain") || mimeMessage.isMimeType("text/html")) {
  73.                 message = "$message\n  Text: " + Jsoup.parse(mimeMessage.content.toString()).text()
  74.             }
  75.  
  76.             if (mimeMessage.description !== null) {
  77.                 //  Дополнение к сообщению
  78.                 message = "$message\n  Message Description: " + mimeMessage.description
  79.             }
  80.             return "$message \n  ]"
  81.         }
  82.         else -> throw error("Unable to find Email")
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement