Я хочу отправить электронную почту через свое приложение. Мне нужно отправить электронную почту на основе HTML через G-Mail. Я нашел следующие решения, в каждом из которых есть плюсы и минусы.
1) Использование Intent (Intent.ACTION_SEND). Это очень простой способ, и я могу видеть свое тело в формате HTML, но проблема заключается в том, что я нажимаю кнопку "Отправить письмо", поэтому появляется много приложений, таких как Facebook и Google+, которые бесполезны, и я не должен показывать его в этом списке, Это его код:
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) Использование Intent (Intent.ACTION_SENDTO). Таким образом, фильтрация бесполезных приложений и показывает мне только почтовые клиенты. Но он не отображает мою электронную почту в формате HTML в клиенте gmail. Когда я отправляю электронное сообщение, некоторые клиенты показывают тело в формате HTML, в то время как другие не идентифицируют HTML, а моя ссылка ведет себя как обычный текст. Этот код похож:
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) Отправка почты с использованием API JavaMail, который добавляет столько сложностей в приложение, и я до сих пор не тестировал его.
Каково ваше предложение? Мне нужен способ иметь преимущества первого и второго способов. Мне нужно, когда пользователь нажимает кнопку, на котором отображается клиент Gmail, и я могу показать его html-контент в основной части клиента.
любое предложение будет оценено. Благодаря
======================
Обновление
Что-то в коде 2 неверно. Код выглядит так:
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..."));