2011-07-20 5 views
14

De http://www.oracle.com/technetwork/java/faq-135477.html#sendmpa:¿Cómo envío un correo electrónico tanto con texto simple como con texto HTML para que cada lector de correo pueda elegir el formato apropiado para él?

Usted desea enviar un mensaje MIME multiparte/alternativo. Usted construye dicho mensaje esencialmente de la misma manera que construye un mensaje multipart/mixed , usando un objeto MimeMultipart construido usando el nuevo MimeMultipart ("alternative"). A continuación, inserte la parte del cuerpo text/plain como la primera parte en la parte múltiple e inserte la parte del cuerpo text/html como la segunda parte en la parte múltiple. Necesitarás construir las partes normal y html para tener el contenido apropiado de . Consulte RFC2046 para obtener detalles de la estructura de dicho mensaje.

¿Alguien me puede mostrar un código de muestra para esto?

+7

OP: ¿tal vez es el momento de marcar la respuesta correcta? – zacheusz

+0

Para alguien que aún usa StackOverflow, se espera que pueda marcar una respuesta como aceptada. –

Respuesta

54

Esta es una parte de mi propio código:

 final Message msg = new MimeMessage(session); 
     msg.setFrom(new InternetAddress(senderAddress, senderDisplayName)); 
     msg.addRecipient(Message.RecipientType.TO, 
       new InternetAddress(m.getRecipient(), m.getRecipientDisplayName())); 
     msg.setSubject(m.getSubject()); 
     // Unformatted text version 
     final MimeBodyPart textPart = new MimeBodyPart(); 
     textPart.setContent(m.getText(), "text/plain"); 
     // HTML version 
     final MimeBodyPart htmlPart = new MimeBodyPart(); 
     htmlPart.setContent(m.getHtml(), "text/html"); 
     // Create the Multipart. Add BodyParts to it. 
     final Multipart mp = new MimeMultipart("alternative"); 
     mp.addBodyPart(textPart); 
     mp.addBodyPart(htmlPart); 
     // Set Multipart as the message's content 
     msg.setContent(mp); 
     LOGGER.log(Level.FINEST, "Sending email {0}", m); 
     Transport.send(msg); 

Dónde m es un ejemplo de mi propia clase.

+0

Eres un salvavidas, pasé la mañana tratando de averiguar por qué estoy recibiendo tanto el html como el texto al mismo tiempo, el paramater "alternativo" me lo arregló :-D –

+10

Si esta es la respuesta correcta, por favor, acrónalos el autor. – user48956

Cuestiones relacionadas