2011-07-10 6 views
6

To jest działający kod, którego używam do wysyłania wiadomości, ale jeśli dołączam zawartość html do argumentu string metody setText(), to jest ona wyświetlana jedynie jako ciąg znaków dla użytkownika, bez efektu HTML.Aparat Google App Engine JAVA: jak osadzić kod HTML w wiadomościach przesyłanych podczas używania apletu poczty Java java na silniku aplikacji 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); 

Odpowiedz

10

spróbuj setContent zamiast setText
więc dla próbki kodu:

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); 

Osobiście do tego celu używam wieloczęściowy wiadomość z tekstem i wersji html. Jest to część mojego własnego kodu:

 // 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 jest zmienną referencyjną dla obiektu, której klasy w tym kodzie? –

+0

@ANSHUL JAIN: zignoruj ​​to - to POJO trzyma wiadomość tekstową. getText() i getHtml() zwraca ciągi (teraz jest usuwany ze źródła). – zacheusz

1

Należy użyć MailService.Message i MailService z niskiego poziomu API. Przykład:

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

Dziękuję, proszę pana. Musimy pokazać Rosjanom pewien szacunek. – megatr0n

+0

Proszę, nie wstydźcie się Rosjan. Powinieneś unikać podwójnych cudzysłowów, aby ten spokój kodu działał –