Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send HTML mail using Android intent

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[]{"[email protected]"});
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());
like image 413
JaVadid Avatar asked Mar 30 '10 09:03

JaVadid


People also ask

How to send HTML content in email in Android?

setType("text/plain"); emailIntent. putExtra(android. content. Intent.


5 Answers

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...

like image 141
Andy Cochrane Avatar answered Oct 21 '22 03:10

Andy Cochrane


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

Sending Emails without User Intervention (no intents) in Android

like image 25
mdaddy Avatar answered Oct 21 '22 02:10

mdaddy


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

like image 25
Big O Avatar answered Oct 21 '22 03:10

Big O


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

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..."));
like image 37
lavan Avatar answered Oct 21 '22 02:10

lavan


Try Below Code :

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT,getResources().getString(R.string.email_subject));
sendIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(getResources().getString(R.string.email_text)));
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, "email"));

string.xml

<resources>    
<string name="email_subject">Download App for your smartphone.</string>
<string name="email_text"><![CDATA[Hey,<br/>I just downloaded App on my Android. 
<br/>It is a smartphone Manager.<br/>App is available for Android.<br/>
    Get it now from http://www.exampleapp.com/download]]></string>

like image 45
Mohd. Jafar Iqbal khan Avatar answered Oct 21 '22 03:10

Mohd. Jafar Iqbal khan