2016-12-13 18 views
8

का उपयोग कर जीमेल 6.11.6 के साथ एचटीएमएल ईमेल भेजें मैं अपने ऐप से एंड्रॉइड पर जीमेल का उपयोग कर एचटीएमएल फॉर्मेटेड ईमेल भेजने के इरादे का उपयोग कर रहा हूं। यह ठीक काम कर रहा था लेकिन अब यह जीमेल कम्पोज़ डिस्प्ले में स्वरूपण भी नहीं दिखा रहा है। क्या जीमेल ऐप में फिर से एक और बग है या क्या ??इरादे

नोट: मैं इन सवालों माध्यम से चले गए allready bug in gmail 4.something और broken gmail intents

मेरे कोड इस

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType(HTML_TEXT); 
String htmlContentInStringFormat = createHtmlforEmail(context, name, channelLink); 
if (htmlContentInStringFormat != null) { 
    intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(htmlContentInStringFormat)); 
    } 
intent.putExtra(Intent.EXTRA_SUBJECT, name); 

टिप्पणी 2 की तरह दिखता है: यह ठीक पहले होती है तो काम कर रहा था एचटीएमएल के साथ गलत नोटिंग।

मेरे एचटीएमएल इस

<div align="center"> 
<font size="5" color="#D0021B" face="Helvetica, Arial, sans-serif">CHARE</font> 
<p><font size="3" color="black" face="Helvetica, Arial, sans-serif">Dear Receiver,</font></p><p><font size="3" color="black" face="Helvetica, Arial, sans-serif">The sender of this email wants to invite you to this CHARE channel %1$s. Please click the subscribe button below to subscribe the channel.</font> </p> <p><a href=%2$s><font size="5" color="#5188de" face="Helvetica, Arial, sans-serif">Subscribe</font></a> </p> <p><font size="3" color="black" face="Helvetica, Arial, sans-serif">More information is available under</font></br><a href="www.chare.one"><font size="3" color="#5188de" face="Helvetica, Arial, sans-serif">www.chare.one</font></a></p></div> 

की तरह मैं भी जो

"Hello, here is some <b>bold text</b> some <u>underline text</u> and <a href=\"http://www.google.com\">a link</a>." 

नीचे दी गई है लेकिन अभी भी जीमेल formating सेट नहीं है html के बहुत ही सरल संस्करण की कोशिश की है लग रहा है। अगर कोई मुझे सही दिशा में इंगित करता है तो यह बहुत अच्छा होगा।

कुछ विकल्पों से संबंधित सुझावों का स्वागत किया जाएगा।

+0

क्या आपको इसके लिए कोई फिक्स मिला? जीमेल v6.11.2 और 7.1.129 पर आपके कोड सहित, किसी भी सामान्य "इरादे के माध्यम से एचटीएमएल ईमेल भेजें" समाधान का उपयोग करके मुझे एक ही समस्या है। – rustyWhitefeather

+1

मुझे लगता है कि जीमेल ने इस कार्यक्षमता को हटा दिया है। – SAIR

+0

क्या आपने यह जांच लिया है कि क्या आप एचटीएमएल के रूप में ईमेल देख रहे हैं, न कि जीमेल पर सादा पाठ के रूप में? –

उत्तर

0

मुझे नहीं पता कि यह आपकी मदद कर सकता है, मैंने इसे एक सप्ताह पहले जावा वेब एप्लिकेशन में बनाया था। यहाँ मेरी विधि है:

private JavaMailSender mailSender; 

public void sendEmail(final userDTO dto, String pathFile) { 
    MimeMessage message = mailSender.createMimeMessage(); 
    MimeMessageHelper helper; 
    try { 
     helper = new MimeMessageHelper(message); 
     helper.setTo(dto.getEmail()); 
     helper.setFrom(the_email_you_want_to_show); 
     helper.setText(loadTemplate(pathFile), true); 
    } catch (MessagingException e) { 
     e.printStackTrace(); 
    } 
    try{ 
     mailSender.send(message); 
    } catch(Exception e){ 
     e.printStackTrace(); 
    } 
} 

और उसके बाद मैं इस विधि का उपयोग टेम्पलेट लोड करने के लिए:

public String loadTemplate(String pathFile){ 
    Document doc = null; 
    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
    domFactory.setNamespaceAware(true); 
    DocumentBuilder docBuilder = null; 
    StringBuilder sb = new StringBuilder(); 
    try { 
     docBuilder = domFactory.newDocumentBuilder(); 
     doc = docBuilder.parse(EmailSender.class.getResourceAsStream(pathFile), "UTF-8"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    try(StringWriter sw = new StringWriter()){ 
     Source xmlSource = new DOMSource(doc); 
     TransformerFactory.newInstance().newTransformer().transform(xmlSource, new StreamResult(sw)); 
     sb.append(sw.toString()); 
    } catch(Exception e){ 
     e.printStackTrace(); 
    } 
    return sb.toString().trim(); 
} 

आपके एसएमटीपी विन्यास कॉन्फ़िगर करने के लिए याद है। मेरे एप्लिकेशन में मैं वसंत जहां मैं एक सेम का उपयोग के लिए इस्तेमाल किया है, लेकिन आप इन गुणों

org.springframework.mail.javamail.JavaMailSenderImpl 
    host="smtp.gmail.com" 
    port="587" 
    username="[email protected]" 
    password="yourPassword" 
    javaMailProperties 
     props 
      prop key="mail.transport.protocol">smtp</prop> 
      prop key="mail.smtp.auth">true</prop> 
      prop key="mail.smtp.starttls.enable">true</prop> 
     props 

मैं माफी चाहता हूँ अगर यह आखिरी हिस्सा स्पष्ट नहीं है लेकिन यह एक वसंत सेम विन्यास के साथ JavaMailSender पॉप्युलेट करना चाहिए। आपको इन गुणों को जावा में मैन्युअल रूप से सेट करना चाहिए (mailSender.set ...)। मुझे लगता है कि आपने जीमेल खाते में सेटिंग्स को कॉन्फ़िगर किया है, क्योंकि उचित सेटिंग्स के बिना यह काम नहीं करेगा, लेकिन मुझे लगता है कि अगर आप कहते हैं कि आप पहले ही कुछ मेल भेज चुके हैं तो आप ठीक हैं। अगर आपको कुछ बेकार कोड मिल जाता है तो यह बेक्यूज है मैंने जल्दी से अपना मूल कोड संशोधित किया।

+0

आपके उत्तर के लिए धन्यवाद लेकिन सवाल एंड्रॉइड और जीमेल ऐप के साथ पुनरावृत्ति से सख्ती से संबंधित है। – SAIR

संबंधित मुद्दे