アプリケーションからメールを送信したい。G-Mail だけで HTML ベースのメールを送信する必要があります。それぞれに長所と短所がある次の解決策を見つけました。
1) インテント (Intent.ACTION_SEND) を使用します。これは非常に簡単な方法で、自分の本文を HTML 形式で表示できますが、問題は [メールを送信] ボタンをクリックしたときに、Facebook や Google+ などの役に立たない多くのアプリケーションがポップアップ表示され、そのリストに表示しないことです。 . これはそのコードです:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"MY EMAIL ADDRESS"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(html));
startActivity(Intent.createChooser(intent, "Send email..."));
2) インテント (Intent.ACTION_SENDTO) を使用する。このようにして、役に立たないアプリケーションをフィルタリングし、メール クライアントだけを表示します。しかし、Gmail クライアントで自分のメールが HTML 形式で表示されません。電子メールを送信すると、HTML 形式で本文を表示するクライアントもあれば、HTML を識別せず、リンクがプレーン テキストのように動作するクライアントもあります。このコードは次のようになります。
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:MY EMAIL ADDRESS" + "?subject=subject here" + "&body=" + html;
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));
3) JavaMail APIを使用してメールを送信すると、アプリケーションが非常に複雑になるため、これまでテストしていませんでした。
あなたの提案は何ですか?私は第一と第二の方法の利点を持つ方法が必要です。ユーザーがボタンをクリックするとGmailクライアントが表示され、クライアントのボディ部分にhtmlコンテンツを表示できます。
任意の提案をいただければ幸いです。ありがとう
======================
アップデート
コード 2 に関する何かが間違っています。コードは次のようになります。
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:MY EMAIL ADDRESS" + "?subject=subject here" + "&body=" + Html.fromHtml(html);
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));