Läs inbäddade e‑postbilagor från meddelande i Aspose.Email

Aspose.Email - Läs inbäddade e‑postbilagor från meddelande

Ibland får vi e‑post med andra e‑postmeddelanden inbäddade som bilagor. Dessa inbäddade e‑postmeddelanden är kompletta meddelanden med egen mottagarlista, ämne, brödtext och till och med bilagor. Varje av dessa meddelanden kan också innehålla inbäddade meddelanden. Med Aspose.Email Java kan utvecklare komma åt varje inbäddat meddelande som ett enskilt meddelande. Detta exempel visar hur man använder den rekursiva funktionaliteten.

Java

 MailMessage message = MailMessage.load(dataDir + \"embedded.msg\", MessageFormat.getMsg());

for (int i = 0; i < message.getAttachments().size(); i++)

{

    Attachment att = (Attachment) message.getAttachments().get_Item(i);

    System.out.println("Attachment Name: " + att.getName());

    // Get the name of attachment. If msg subject contains characters like :, /, \ etc., replace with space

    // because windows cannot save files with these characters

    // also save first 50 characters as file name to avoid long file names

    String attFileName = att.getName().replace(".eml", "").replace(":", " ").replace("\\", " ").replace("/", " ").replace("?", "");

    if (attFileName.length() > 50)

    {

        attFileName = attFileName.substring(0, 50);

    }

    String attExt = (att.getName().substring(att.getName().lastIndexOf("."), att.getName().lastIndexOf(".") + 4));

    // Save the attachment to disk

    att.save(dataPath + attFileName + attExt);

    // Check if it is an orphaned text attachment file (ATT00001.txt....) and of type eml

    if ((attExt.equals(".eml")) || (att.getContentType().getMediaType().equals("text/plain") && att.getName().contains(".txt") == true && att.getName().contains("ATT") == true))

    {

        // Try to load this text file in MailMessage

        MailMessage attMsg = MailMessage.load(dataPath + attFileName + attExt, MessageFormat.getEml());

        // Call the function recursively to parse this message and attachments

        ParseMessage(attMsg);

    }

}

Ladda ner körbar kod

Ladda ner exempelkod