2011-07-10 10 views
6

este es el código de trabajo que estoy usando para enviar el correo pero si incluyo contenido html para el argumento de cadena del método setText() entonces se muestra simplemente como una cadena para el usuario, sin efecto HTML.Google app engine JAVA: ¿cómo incrustar html en el correo que se envía al usar java mail api en el motor de la aplicación google?

 Message msg = new MimeMessage(session1); 
     msg.setFrom(new InternetAddress("[email protected]", "Team Application")); 
     msg.addRecipient(Message.RecipientType.TO, new InternetAddress(email, "Dear "+name1+".")); 
     msg.setSubject("Registration confirmation mail"); 
     msg.setText("Dear "+name1+",\nThanks for registering with us."); 
     Transport.send(msg); 

Respuesta

10

tratar de usar en lugar de setContent setText
por lo que para la muestra de código:

Message msg = new MimeMessage(session1); 
    msg.setFrom(new InternetAddress("[email protected]", "Team Application")); 
    msg.addRecipient(Message.RecipientType.TO, new InternetAddress(email, "Dear "+name1+".")); 
    msg.setSubject("Registration confirmation mail"); 
    msg.setContent("Dear <i>"+name1+"</i>,<br>Thanks for registering with us.", "text/html"); 
    Transport.send(msg); 

En lo personal, para este propósito utilizo mensaje de varias partes con el texto y la versión html. Esto es parte de mi propio código:

 // Unformatted text version 
     final MimeBodyPart textPart = new MimeBodyPart(); 
     textPart.setText("plain content"); 
     // HTML version 
     final MimeBodyPart htmlPart = new MimeBodyPart(); 
     htmlPart.setContent("<b>html content</b>", "text/html"); 
     // Create the Multipart. Add BodyParts to it. 
     final Multipart mp = new MimeMultipart(); 
     mp.addBodyPart(textPart); 
     mp.addBodyPart(htmlPart); 
     // Set Multipart as the message's content 
     msg.setContent(mp); 
+0

m es la variable de referencia para el objeto de qué clase en este código ??? –

+0

@ANSHUL JAIN: ignóralo: este es un mensaje de texto de POJO. getText() y getHtml() devuelve cadenas (ahora se elimina de la fuente). – zacheusz

1

Debe utilizar MailService.Message y MailService desde la API de bajo nivel. Ejemplo:

Message msg = new Message(); 
    msg.setSender(_sender); 
    msg.setTo(_recipient); 
    msg.setSubject(_msgSubject); 
    msg.setHtmlBody("<h1 style="height:1200px;">THIS IS RUSSIA!!!</h1>"); 
    MailService service = MailServiceFactory.getMailService(); 
    try { 
     service.send(msg); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Gracias, señor. Tenemos que mostrarles a los rusos un poco de respeto. – megatr0n

+0

Por favor, no avergonzar a los rusos. Debería escapar de las comillas dobles para que funcione esta paz de código –

Cuestiones relacionadas