Я прочитал хороший бит об ограничениях отправки html-писем от android. Все предложения по отправке html-сообщения, похоже, состоят в том, чтобы просто передать Html.fromHtml(yourHtmlString) в намерение как Intent.EXTRA_TEXT. Это работает для нескольких базовых тегов - жирным, курсивом - но не будет ничего подобного таблице html.
Похоже, вы могли бы попытаться расширить некоторые функции Html или реализовать свой собственный обработчик тегов, но мне интересно, нет ли более фундаментального ограничения, которое заставит вас сделать что-то совершенно другое (например, с почтой api или что-то еще).
Причина, по которой я предлагаю это, состоит в том, что, насколько известно самому намерению, Html.fromHtml(blah) - это просто charsequence, и если вы вызываете методы на интерфейсе charsequence на этом объекте, вы не видите никаких html (по крайней мере, я этого не делал). Весь материал html/tag, похоже, завернут в SpannableStringBuilder, который фактически возвращает Html.fromHtml... и мне интересно, выглядит ли приложение gmail под обложками, чтобы увидеть, что такое charsequence, и затем может обрабатывать несколько тегов, что означает, что нет никакой надежды в том, чтобы что-либо делать с вашим приложением, чтобы получить/обмануть приложение gmail, чтобы обрабатывать все более сложное, чем полужирное, курсивное и т.д.
Я просмотрел необработанное письмо, которое фактически отправляет приложение gmail, и оно автоматически отправляет как текст /plain без тегов, так и версию text/html с ограниченным количеством тегов. Я даже пытался придерживаться некоторых экранированных html-тегов, которые в конечном итоге могут быть преобразованы в фактические теги в части текста /html электронной почты, но, увы, они не сбежали... и это, конечно, будет немного взломанным.
В любом случае, для тех, кто, возможно, заглянул в это больше, я хотел сделать дополнительное подтверждение того, что стандартная андроидная функция "отправить html-email" позволит вам сходить с ума поближе к тому, что вам может понадобиться, но в конце концов вы (например, Отправка электронной почты на Android с использованием API JavaMail без использования стандартного/встроенного приложения, что означает вам нужно иметь дело с материалом pw и т.д.).
Примечание (позже): Я обернул SpannableStringBuilder, возвращенный из Html.fromHtml, с помощью специального класса, который расширил SpannableStringBuilder и передал его, с целью прослушивания вызовов в Spanned interface. Оказывается, что когда вещи записываются на посылку, отправленную в намерение электронной почты, TextUtils.writeToParcel делает некоторую специальную проверку, чтобы искоренить жирный/курсивный материал, сначала проверив, является ли CharSequence экземпляром Spanned, а затем просит промежутки (через spanned.getSpans). Тем не менее, я не вижу никакой явной надежды на то, чтобы сделать модификации, чтобы получить что-то простое, как теги table/td, которые там обрабатываются. И я даже попробовал модифицировать toString() моего подкласса SpannableStringBuilder, чтобы вернуть некоторый raw html таблицы, чтобы увидеть, что произойдет, но оно ускользнуло где-то там в процессе обработки посылки.
И еще (позже): TextUtils.writeToParcel(CharSequence cs, Parcel p,...) будет, если cs является экземпляром "Spanned", напишите эти интервалы, только если они реализуют интерфейс "ParcelableSpan"... который является "особым видом Parcelable для объекты, которые будут использоваться в качестве текстовых пространств" и "могут использоваться только кодом в рамках, а не предназначены для приложений для реализации своих собственных пространственных интервалов". Таким образом, даже если вы хотите подключиться к этому и написать свой собственный, чтобы обрабатывать теги таблицы или что-то еще, кажется, это не рекомендуется. Человек, которого я хочу, чтобы hackbod весил бы здесь, с чем-то очевидным, что я пропустил.