Как отправить HTML-адрес электронной почты
Я нашел способ отправить текстовое сообщение с использованием намерения:
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new
String[]{"[email protected]"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test");
Но мне нужно отправить текст в формате HTML.
Попытка setType ( "text/html" ) не работает.
Ответы
Ответ 1
Вы можете передать текст Spanned
в дополнение. Чтобы убедиться, что намерение разрешено только для действий, которые обрабатывают электронную почту (например, приложения Gmail и электронной почты), вы можете использовать ACTION_SENDTO
с Uri, начинающимся с схемы mailto. Это также будет работать, если вы заранее не знаете получателя:
final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
shareIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
.append("<p><b>Some Content</b></p>")
.append("<small><p>More content</p></small>")
.toString())
);
Ответ 2
Это очень помогло мне для HTML, но ACTION_SENDTO не совсем сработал у меня, как есть - у меня появилось сообщение "действие не поддерживается". Я нашел здесь вариант:
http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when
И вот мой код, который объединяет их вместе:
String mailId="[email protected]";
Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
Uri.fromParts("mailto",mailId, null));
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here");
// you can use simple text like this
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here");
// or get fancy with HTML like this
emailIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
.append("<p><b>Some Content</b></p>")
.append("<a>http://www.google.com</a>")
.append("<small><p>More content</p></small>")
.toString())
);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
Ответ 3
Я еще не начал разработку Android, но документация в намерении говорит, что если вы используете EXTRA_TEXT, тип MIME должен быть текстовым/равным. Похоже, если вы хотите увидеть HTML, вам придется использовать EXTRA_STREAM вместо этого...
Ответ 4
Вы должны изменить "EXTRA_TEXT" для "EXTRA_HTML_TEXT"
https://developer.android.com/reference/android/content/Intent.html#EXTRA_HTML_TEXT
Ответ 5
Как насчет просто добавления некоторого html в текстовую область?
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");