Androidでメールを送信する方法
Androidでは、 `Intent.ACTION__SEND`を使って既存の電子メールクライアントを呼び出して電子メールを送信することができます。
次のコードスニペットを参照してください。
Intent email = new Intent(Intent.ACTION__SEND); email.putExtra(Intent.EXTRA__EMAIL, new String[]{"[email protected]"}); email.putExtra(Intent.EXTRA__SUBJECT, "subject"); email.putExtra(Intent.EXTRA__TEXT, "message"); email.setType("message/rfc822"); startActivity(Intent.createChooser(email, "Choose an Email client :"));
__P.SこのプロジェクトはEclipse 3.7で開発され、Samsung Galaxy S2(Android 2.3.3)でテストされました。
1. Androidのレイアウト
ファイル:res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout__width="fill__parent" android:layout__height="fill__parent" android:orientation="vertical" > <TextView android:id="@+id/textViewPhoneNo" android:layout__width="wrap__content" android:layout__height="wrap__content" android:text="To : " android:textAppearance="?android:attr/textAppearanceLarge"/> <EditText android:id="@+id/editTextTo" android:layout__width="fill__parent" android:layout__height="wrap__content" android:inputType="textEmailAddress" > <requestFocus/> </EditText> <TextView android:id="@+id/textViewSubject" android:layout__width="wrap__content" android:layout__height="wrap__content" android:text="Subject : " android:textAppearance="?android:attr/textAppearanceLarge"/> <EditText android:id="@+id/editTextSubject" android:layout__width="fill__parent" android:layout__height="wrap__content" > </EditText> <TextView android:id="@+id/textViewMessage" android:layout__width="wrap__content" android:layout__height="wrap__content" android:text="Message : " android:textAppearance="?android:attr/textAppearanceLarge"/> <EditText android:id="@+id/editTextMessage" android:layout__width="fill__parent" android:layout__height="wrap__content" android:gravity="top" android:inputType="textMultiLine" android:lines="5"/> <Button android:id="@+id/buttonSend" android:layout__width="fill__parent" android:layout__height="wrap__content" android:text="Send"/> </LinearLayout>
2.活動
電子メールを送信するフルアクティビティクラス。 `onClick()`メソッドを読んで、それは自明です。
package com.mkyong.android; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class SendEmailActivity extends Activity { Button buttonSend; EditText textTo; EditText textSubject; EditText textMessage; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); buttonSend = (Button) findViewById(R.id.buttonSend); textTo = (EditText) findViewById(R.id.editTextTo); textSubject = (EditText) findViewById(R.id.editTextSubject); textMessage = (EditText) findViewById(R.id.editTextMessage); buttonSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String to = textTo.getText().toString(); String subject = textSubject.getText().toString(); String message = textMessage.getText().toString(); Intent email = new Intent(Intent.ACTION__SEND); email.putExtra(Intent.EXTRA__EMAIL, new String[]{ to}); //email.putExtra(Intent.EXTRA__CC, new String[]{ to}); //email.putExtra(Intent.EXTRA__BCC, new String[]{to}); email.putExtra(Intent.EXTRA__SUBJECT, subject); email.putExtra(Intent.EXTRA__TEXT, message); //need this to prompts email client only email.setType("message/rfc822"); startActivity(Intent.createChooser(email, "Choose an Email client :")); } }); } }
デモ
デフォルトのスクリーを参照し、詳細を記入し、「送信」ボタンをクリックします。
既存の電子メールクライアントに選択を促すメッセージが表示されます。
この場合、私は
Gmail
を選択しました。詳細については、
Gmail
クライアントに自動的に入力されます。
-
注意** AndroidはEメールを直接送信するためのAPIを提供していません。既存のEメールクライアントに電話をかけてEメールを送信する必要があります。
ソースコードをダウンロードする
ダウンロードする –
Android-Send-Email-Example.zip
(16 KB)
参考文献
意図ACTION__SEND Javadoc]