2011-07-10 5 views
6

यह वह कामकाजी कोड है जिसका उपयोग मैं मेल भेजने के लिए कर रहा हूं लेकिन अगर setText() विधि के स्ट्रिंग तर्क में एचटीएमएल सामग्री शामिल है तो इसे केवल उपयोगकर्ता के लिए स्ट्रिंग के रूप में प्रदर्शित किया जा रहा है, कोई HTML प्रभाव नहीं।Google ऐप इंजन जावा: 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); 

उत्तर

10

तो अपने कोड नमूने के लिए setText
के बजाय setContent उपयोग करके देखें:

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

व्यक्तिगत रूप से, इस उद्देश्य के लिए मैं बहुखण्डीय संदेश पाठ और html संस्करण के साथ उपयोग करें। यह मेरे अपने कोड का हिस्सा है:

 // 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

मीटर इस कोड में कौन सा वर्ग के ऑब्जेक्ट के लिए संदर्भ चर है ??? –

+0

@ANSHUL जैन: इसे अनदेखा करें - यह POJO होल्डिंग टेक्स्ट संदेश है। getText() और getHtml() स्ट्रिंग लौटाता है (अब इसे स्रोत से हटा दिया गया है)। – zacheusz

1

MimeMessage documentation जाँच हो रही है, तो आप आप setText() अतिभारित हस्ताक्षर जहां चारसेट और माइम उप प्रकार निर्दिष्ट कर सकते हैं कर सकते हैं:

msg.setText("Your html body", "utf-8", "html"); 
+0

काम नहीं करता है ...! –

+0

@ANS क्या हुआ? – systempuntoout

+0

मेरे मामले में मोज़िला थंडरबर्ड msg.tTxt ("आपका एचटीएमएल बॉडी", "utf-8", "html") का विश्लेषण नहीं करता है। हालांकि लिंक संदेश निकाय में निहित –

1

आप का उपयोग करना चाहिए MailService.Message और MailService निम्न-स्तर API से। उदाहरण:

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

धन्यवाद श्रीमान। हमें रूसियों को कुछ सम्मान दिखाना होगा। – megatr0n

+0

कृपया, रूसियों को शर्मिंदा मत करो। कोड की यह शांति बनाने के लिए आपको डबल कोट्स से बचना चाहिए –