Desidero inviare e-mail tramite la mia domanda. Ho bisogno di inviare email basate su HTML solo tramite G-Mail. Ho trovato le seguenti soluzioni che ognuna di esse ha vantaggi e svantaggi.Android, Come inviare e-mail HTML e forzare Android a inviarlo tramite G-Mail non altre applicazioni?
1) Utilizzo di Intento (Intent.ACTION_SEND). Questo è un modo molto semplice e posso vedere il mio corpo in formato HTML ma il problema è quando clicco sul pulsante "Invia email", così tante applicazioni come Facebook e Google+ appaiono inutili e non dovrei mostrarlo in quella lista . Questo è il suo codice:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"MY EMAIL ADDRESS"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(html));
startActivity(Intent.createChooser(intent, "Send email..."));
2) Uso di intenti (Intent.ACTION_SENDTO). In questo modo filtri le applicazioni inutili e mi mostra solo i client di posta. Ma non mostra la mia email in formato HTML nel client gmail. Quando invio l'e-mail alcuni client mostrano il corpo in formato HTML mentre altri non identificano l'HTML e il mio collegamento si comporta come testo normale. Questo codice è simile:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:MY EMAIL ADDRESS" + "?subject=subject here" + "&body=" + html;
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));
3) Invio di posta tramite JavaMail API che aggiunge così tanto la complessità dell'applicazione e non ho la prova finora.
Qual è il tuo suggerimento? Ho bisogno di un modo per avere vantaggi di primo e secondo modo. Mi serve quando l'utente fa clic sul pulsante che mostra il client Gmail e posso mostrargli il contenuto html nella parte del corpo del client.
qualsiasi suggerimento sarebbe apprezzato. Grazie
======================
Aggiornamento
Qualcosa su di codice 2 è sbagliato. Il codice è simile a questo:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:MY EMAIL ADDRESS" + "?subject=subject here" + "&body=" + Html.fromHtml(html);
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));
Html.fromHtml (html)? Funziona? – Merve
Come puoi vedere nella mia ultima schermata, rimuove tutti i tag HTML ma il link (prima riga) viene visualizzato come testo normale. confrontalo con la seconda immagine per favore. Grazie. – Hesam
@Hesam Non riesco a raggiungere il primo.Ho provato ad incollare il codice completo (1 °) e i collegamenti sono visualizzati come testo normale. qualche idea? – SKP