Android, Как отправить электронное письмо в формате HTML и заставить Android отправлять его через G -Mail, а не через другие приложения?

Я хочу отправить электронное письмо через мое приложение. Мне нужно отправить электронное письмо в формате HTML только через G -Mail. Я нашел следующие решения, у каждого из которых есть свои плюсы и минусы.

1 )Использование намерения (Намерение.ДЕЙСТВИЕ _ОТПРАВИТЬ ). Это очень простой способ, и я могу видеть свое тело в формате HTML, но проблема в том, что когда я нажимаю кнопку «Отправить электронное письмо», появляется так много приложений, таких как Facebook и Google+, которые бесполезны, и я не должен показывать его в этом списке.. Это его код:

String html = "Visit W3Schools.com!" + "

If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.

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

enter image description hereenter image description here

2 )Использование намерения (Intent.ACTION _SENDTO ). Таким образом фильтрует бесполезные приложения и показывает мне только почтовые клиенты. Но он не отображает мою электронную почту в формате HTML в клиенте Gmail. Когда я отправляю электронное письмо, некоторые клиенты показывают тело в формате HTML, в то время как другие не идентифицируют HTML, и моя ссылка ведет себя как обычный текст.Этот код похож на:

String html = "Visit W3Schools.com!" + "

If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.

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

enter image description hereenter image description here

3 )Отправка почты с помощью API JavaMail , который сильно усложняет приложение, и я пока не тестировал его.

Каково ваше предложение? Мне нужен способ иметь преимущества первого и второго способов. Мне нужно, когда пользователь нажимает кнопку, он показывает клиент Gmail, и я могу показать ему/ей html-контент в основной части клиента.

любое предложение будет оценено. Спасибо

=======================

Обновление

Что-то с кодом 2 не так. Код такой:

String html = "Visit W3Schools.com!" + "

If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.

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

enter image description here

17
задан Community 23 May 2017 в 12:17
поделиться