35

インテントを使用してプレーンテキストのメールを送信する方法を見つけました:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new     
String[]{"example@mail.com"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test");

しかし、HTML 形式のテキストを送信する必要があります。
setType("text/html") を試みても機能しません。

4

6 に答える 6

51

You can pass Spanned text in your extra. To ensure that the intent resolves only to activities that handle email (e.g. Gmail and Email apps), you can use ACTION_SENDTO with a Uri beginning with the mailto scheme. This will also work if you don't know the recipient beforehand:

final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
shareIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
    .append("<p><b>Some Content</b></p>")
    .append("<small><p>More content</p></small>")
    .toString())
);
于 2010-04-30T15:34:23.003 に答える
3

これはHTMLにとって非常に役立ちましたが、ACTION_SENDTOはそのままでは機能しませんでした。「アクションはサポートされていません」というメッセージが表示されました。私はここで次のような変種を見つけました:

http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when

そして、これが2つを組み合わせた私のコードです:

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..."));
于 2011-11-09T16:51:55.323 に答える
2

私は (まだ) Android 開発を開始していませんが、インテントのドキュメントによると、EXTRA_TEXT を使用する場合、MIME タイプは text/plain にする必要があります。HTML を見たい場合は、代わりに EXTRA_STREAM を使用する必要があるようです...

于 2010-01-05T16:55:37.600 に答える
-3

テキスト領域に html を追加してみてはどうですか?

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");
于 2010-01-05T16:52:56.223 に答える