Подтвердить что ты не робот

Отправить HTML-письмо с Gmail 4.2.1

Похоже, что Gmail 4.2.1 может иметь поврежденные письма в формате HTML. Следующий код работал отлично до 4.2.1. В электронном письме, отправленном из Gmail, были указаны встроенные ссылки, выделенные жирным шрифтом и подчеркнутые слова. К сожалению, после обновления до версии 4.2.1 отправленное письмо появляется так, как будто все форматирование HTML было удалено. Я надеюсь, что может быть обходной путь для этого, возможно, кто-то нашел?

final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc822");
String[] toArr = new String[] { "[email protected]" };
intent.putExtra(Intent.EXTRA_EMAIL, toArr);
intent.putExtra(Intent.EXTRA_SUBJECT, "This is a subject");
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Hello, here is some <b>bold text</b> some <u>underline text</u> and <a href=\"http://www.google.com\">a link</a>."));

Интересная вещь (или, может быть, нет?) заключается в том, что составление предварительного просмотра этого сообщения электронной почты показывает весь выделенный текст, подчеркнутый и связанный текст, как можно было бы ожидать, что он появится. Но когда он отправляется, получатель получает электронное письмо со всеми этими материалами.

И да, я знаю этот другой вопрос об этом, который был закрыт. Я думаю, что, возможно, это было закрыто преждевременно, и я надеюсь, что дополнительная информация здесь может заслуживать другого взгляда.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: При дальнейших исследованиях эта проблема намного больше, чем просто отправка электронной почты HTML через намерения. Если вы создаете черновик электронной почты, используя веб-приложение GMail, имеющее некоторое форматирование (жирный шрифт, подчеркивание, гиперссылки и т.д.), Затем откройте этот черновик электронной почты в своем приложении для Android GMail (v4.2.1), и появится, что все ваше форматирование были сохранены. Однако, если вы отправите этот проект электронной почты с помощью своего приложения для Android GMail, все ваше форматирование будет удалено до отправки электронной почты.

4b9b3361

Ответ 1

Это почти наверняка было ошибкой в ​​GMail 4.2.1.

По состоянию на 19 марта 2013 года был выпущен GMail 4.3, который, как представляется, исправил ошибку.

Ответ 2

Мне жаль, что вы столкнулись с этим тоже Скоттом. Я подал отчет об ошибке с Google в декабре, но это просто черная дыра.

Мне нужно было встроить гиперссылки. Моя лучшая работа заключалась в том, чтобы отправить текстовое сообщение или сообщение /rfc 822 с URL-адресом в текстовом виде в сообщении. Как ни странно, Gmail признает это и пытается заключить его в < a </a> . Используя этот метод, я могу получить ссылку, посланную и кликаемую получателем, но она выглядит как дерьмо.

Также немного сложно получить отформатированный URL-адрес, чтобы Gmail распознал весь текст ссылки и надлежащим образом его включил.

Ответ 3

После прочтения вашего вопроса я много занимался этой проблемой, и я нашел здесь. На самом деле это показывает способ и причина форматирования тела Gmail. Вы также можете проверить ссылку.

Надеюсь, это поможет вам.

Спасибо.

Ответ 4

private void sendMail(String appName, String playStoreLink) {
    String msg = "<HTML><BODY>Hello,<br>Recently,I downloaded <b><font color=\"red\">"+appName+"</font></b>"+
" from Play Store.I found this very challenging and a great game."+
            "<br>I would like to suggest you this game.<br><br><a href="+playStoreLink+">Download</a><br><br>"+
"<br>Thank You</BODY></HTML>";
    String sub = "Get it now. It is there in Play Store";
    Intent email = new Intent(Intent.ACTION_SEND);
    email.setType("text/html");
    email.putExtra(Intent.EXTRA_SUBJECT, sub);
    email.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(msg));
    email.setType("message/rfc822");
    startActivity(Intent.createChooser(email, "Choose an Email client :"));
}