without intent compose code android html email android-intent gmail

intent - send email android code



Enviar correo electrónico HTML con Gmail 6.11.6 con intención (1)

No sé si puede ayudarte, lo hice en una aplicación web java hace solo una semana. Aquí está mi método:

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

y luego uso este método para cargar la plantilla:

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

recuerde configurar su configuración smtp. en mi aplicación, utilicé la primavera donde uso un frijol, pero debes llenar el JavaMailSender con estas propiedades

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

Lo siento si esta última parte no está clara, pero es una configuración de Spring Bean. debe establecer estas propiedades en java manualmente (mailSender.set ...). Supongo que configuró la configuración en su cuenta de gmail, porque sin la configuración adecuada no funcionará, pero creo que está bien si dice que ya envió algunos correos. Si encuentras algún código inútil, es porque modifiqué rápidamente mi código original.

He estado usando Intents para enviar correos electrónicos con formato HTML usando Gmail en Android desde mi aplicación. funcionaba bien, pero ahora no muestra el formato incluso en la pantalla de redacción de Gmail. ¿Hay algún otro error en la aplicación de Gmail o qué?

Nota: He revisado estas preguntas: error en gmail 4. algo y intentos fallidos de gmail

Mi código se ve así

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

nota 2: estaba funcionando bien anteriormente, por lo que no está mal con html.

Mi Html se ve así

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

También he probado una versión muy simple de html que se da a continuación

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

pero gmail todavía no establece el formateo. Será genial si alguien me señala la dirección correcta.

Sugerencias relacionadas con algunas alternativas serán bienvenidas.