2013-08-07 3 views
0

J'essaie de lire l'en-tête Status d'un email rebondi. This site explique mieux ce que je suis en train ...Les mails rebondis obtiennent l'en-tête Status

Le courrier électronique est composé de plusieurs objets Multiparts, donc je suis en train de lire dans le code java:

private void test(MimeMessage message) throws IOException, MessagingException { 
    if (message.getContent() != null && message.getContent() instanceof Multipart) { 
        Multipart content = (Multipart) message.getContent(); 
        for (int i = 0; i < content.getCount(); i++) { 
         BodyPart bodyPart = content.getBodyPart(i); 
         Enumeration headers = bodyPart.getAllHeaders(); 
         while(headers.hasMoreElements()){ 
          Header header = (Header) headers.nextElement(); 
          LOGGER.info("Header: " + header.getName() + " value: " + header.getValue()); 
         } 
        } 

       } 
} 

La partie e-mail J'analyse:

Description du contenu: Rapport de remise Type de contenu: text/plain; charset = utf-8 Codage de contenu-Codage: 7 bits

Reporting-MTA: dns; someLink.com X-Postfix-File d'attente: EC862F00D0 X-Postfix-Sender: rfc822; [email protected] Date d'arrivée: mer, 7 août 2013 13:52:43 +0200 (CEST)

Destinataire final: rfc822; [email protected] Destinataire d'origine: rfc822; [email protected] Action: Échec État: 5.1.1 Remote-MTA: dns; [somelink.com Code de diagnostic: smtp; 550-5.1.1 Le compte de messagerie que vous avez essayé d'atteindre n'existe pas n'existe pas. S'il vous plaît essayez 550-5.1.1 double-vérification adresse e-mail du destinataire adresse pour les fautes de frappe ou 550-5.1.1 espaces inutiles.

Dans mon fichier journal, je ne vois que les 3 premiers têtes:

> Header: Content-Description value: Delivery report 
> Header: Content-Type value: text/plain; charset=us-ascii INFO 
> Header: Content-Transfer-Encoding value: 7bit 

Est-ce que quelqu'un sait pourquoi? Comment puis-je obtenir l'en-tête de statut? Merci

Répondre

0

Je ne pouvais pas trouver les informations d'état dans l'en-tête, et je vais le prendre du contenu. Ce n'est pas une solution élégante, mais au moins cela fonctionne. Si quelqu'un trouve un meilleur, s'il vous plaît faites le moi savoir!

code Java:

StringWriter writer = new StringWriter(); 
       IOUtils.copy(bodyPart.getInputStream(), writer); 
       LOGGER.info("Content inputstream: " + writer.toString()); 

Journaux:

contenu inputstream: rapports-MTA: dns; srvvie-mx3.styria-multi-media.com X-Postfix-File d'attente: 2A1A8F00CF X-Postfix-Sender: rfc822; Date d'arrivée: Fri, 9 Aug 2013 11:14:02 +0200 (CEST)

Destinataire final: rfc822; [email protected] Destinataire d'origine: rfc822; [email protected] Action: en panne État: 5.1.1 Remote-MTA: dns; Code de diagnostic: smtp; 550 5.1.1 Boîte aux lettres n'existe pas

Questions connexes