web-dev-qa-db-ja.com

Androidインテントを使用してHTMLメールを送信する

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[]{"[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"));
_

ここで、purchaseOrder()は、完全なHTMLコードを持つ文字列を渡すメソッドです。しかし、GMailクライアントは私のNexus1で開きますが、実際のHTMLビューではなく、すべてのHTMLタグを含む文字列があります。次のことを試しましたが、エラーが発生しました。 Gmailがクラッシュしました。

_intent.putExtra(Intent.EXTRA_STREAM, purchaseOrder());
_
18
JaVadid

これは私のために働きます:

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

しかし、インラインスタイルと画像タグが無視されていることに気づきました...

27
Andy Cochrane

これを実行しようとしている他の人は、Androidを使用して舞台裏で手動でメールを送信します-javamailerは機能します(私はそれを実行しました):

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

4
mdaddy

私が間違っていなければ、あなたが探していたのは

   Html.fromHtml()

例えば.

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

これにより、Googleはハイパーリンクになります

1
Big O

これは私のために働いたIntent.ACTION_SENDTOそして私のコードはここにあります:

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..."));
1
lavan

以下のコードをお試しください:

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>