Отправка HTML-почты с помощью Android - PullRequest
17 голосов
/ 30 марта 2010

Я сгенерировал HTML-код (с тегами <html><body></body></html>) в виде строки. Теперь я хочу отправить этот HTML-код в виде HTML на почту. Мой код, как показано ниже.

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"me@mydomain.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "I would like to buy the following");
intent.putExtra(Intent.EXTRA_TEXT, purchaseOrder());
startActivity(Intent.createChooser(intent, "sending mail"));

Где purchaseOrder() - метод, передающий мне строку, содержащую полный HTML-код. Но хотя на моем Nexus1 открывается клиент GMail, но в нем есть строка со всеми тегами HTML, а не реальное представление HTML. Я попробовал следующее, но получил ошибку. GMail разбился.

intent.putExtra(Intent.EXTRA_STREAM, purchaseOrder());

Ответы [ 4 ]

27 голосов
/ 09 декабря 2010

Это работает для меня:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));
startActivity(Intent.createChooser(emailIntent, "Email:"));

Но я заметил, что встроенные стили и теги изображений игнорируются ...

4 голосов
/ 20 сентября 2010

Для тех, кто хочет это сделать, отправка электронной почты вручную за кулисами с использованием android-javamailer works (я сделал это):

http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android

1 голос
/ 05 февраля 2015

Это сработало для меня Intent.ACTION_SENDTO и мой код идет сюда:

String mailId="yourmail@gmail.com";
    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..."));
1 голос
/ 24 июня 2012

если я не ошибаюсь, то, что вы искали, было

   Html.fromHtml()

например.

Html.fromHtml("<a href="www.google.com"> Google</a>");

это сделает Google гиперссылкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...