Send HTML mail using Android intent

2019-01-04 02:31发布

I have generated an HTML code(complete with <html><body></body></html> tags) as a String. Now I want to send this HTML code as HTML to mail. My code is as below.

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"));

Where the purchaseOrder() is the method which passes me the string having full HTML code. But though the GMail client opens on my Nexus1 but it has the String with all HTML tags and not the actual HTML view. I tried the following but got error. The GMail crashed.

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

4条回答
走好不送
2楼-- · 2019-01-04 03:10

if i am not wrong what you were looking for was

   Html.fromHtml()

e.g.

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

this will make Google a hyperlink

查看更多
神经病院院长
3楼-- · 2019-01-04 03:11

For anyone else looking to do this, sending the email manually behind the scenes using android-javamailer works (I've done it):

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

查看更多
贼婆χ
4楼-- · 2019-01-04 03:17

This works for me:

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:"));

But I've notice that inline styles and image tags are being ignored...

查看更多
Root(大扎)
5楼-- · 2019-01-04 03:18

This worked for me Intent.ACTION_SENDTO and my code goes here:

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..."));
查看更多
登录 后发表回答