Android-이메일 보내기

Email 한 시스템 사용자가 네트워크를 통해 한 명 이상의 수신자에게 전자적 수단으로 배포되는 메시지입니다.

이메일 활동을 시작하기 전에 의도적으로 이메일 기능을 알아야합니다. 의도는 애플리케이션 내부 또는 애플리케이션 외부에서 한 구성 요소에서 다른 구성 요소로 데이터를 전달합니다.

애플리케이션에서 이메일을 보내기 위해 처음부터 이메일 클라이언트를 구현할 필요는 없지만 Android, Gmail, Outlook, K-9 Mail 등에서 제공되는 기본 이메일 앱과 같은 기존 클라이언트를 사용할 수 있습니다.이를 위해 목적을 위해 올바른 작업과 데이터가 포함 된 암시 적 인 텐트를 사용하여 이메일 클라이언트를 시작하는 활동을 작성해야합니다. 이 예제에서는 기존 이메일 클라이언트를 시작하는 Intent 객체를 사용하여 앱에서 이메일을 보내겠습니다.

다음 섹션에서는 이메일을 보내는 데 필요한 Intent 개체의 여러 부분을 설명합니다.

의도 개체-이메일 전송 작업

당신은 사용할 것입니다 ACTION_SENDAndroid 장치에 설치된 이메일 클라이언트를 시작하는 작업입니다. 다음은 ACTION_SEND 작업으로 인 텐트를 만드는 간단한 구문입니다.

Intent emailIntent = new Intent(Intent.ACTION_SEND);

Intent Object-이메일을 보낼 데이터 / 유형

이메일을 보내려면 다음을 지정해야합니다. mailto: setData () 메서드 및 데이터 유형을 사용하는 URI로 text/plain 다음과 같이 setType () 메서드를 사용하여-

emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

Intent Object-Extra to send email

Android에는 대상 이메일 클라이언트에 인 텐트를 보내기 전에 인 텐트에 첨부 할 수있는 TO, SUBJECT, CC, TEXT 등의 필드를 추가하는 기본 지원 기능이 있습니다. 이메일에 다음과 같은 추가 필드를 사용할 수 있습니다.

Sr. 아니. 추가 데이터 및 설명
1

EXTRA_BCC

숨은 참조로 복사해야하는 전자 메일 주소가 들어있는 String []입니다.

2

EXTRA_CC

참조 할 전자 메일 주소가 들어있는 String []입니다.

EXTRA_EMAIL

배달해야하는 전자 메일 주소가 들어있는 String []입니다.

4

EXTRA_HTML_TEXT

인 텐트와 연관된 상수 문자열로, ACTION_SEND와 함께 사용되어 EXTRA_TEXT의 대안을 HTML 형식 텍스트로 제공합니다.

5

EXTRA_SUBJECT

메시지의 원하는 제목을 포함하는 상수 문자열입니다.

6

EXTRA_TEXT

보낼 리터럴 데이터를 제공하기 위해 ACTION_SEND와 함께 사용되는 Intent와 연관된 상수 CharSequence입니다.

7

EXTRA_TITLE

ACTION_CHOOSER와 함께 사용할 때 사용자에게 제공 할 CharSequence 대화 상자 제목입니다.

다음은 인 텐트에 추가 데이터를 할당하는 방법을 보여주는 예입니다.

emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"Recipient"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "Message Body");

위 코드의 출력은 아래와 같습니다.

이메일 예

다음 예제는 Intent 객체를 사용하여 이메일 클라이언트를 시작하여 주어진 수신자에게 이메일을 보내는 실제 방법을 보여줍니다.

이 예제를 이메일로 실험하려면 최신 Android OS가 장착 된 실제 모바일 장치가 필요합니다. 그렇지 않으면 제대로 작동하지 않을 수있는 에뮬레이터로 어려움을 겪을 수 있습니다. 둘째, 기기에 GMail (기본적으로 Gmail 클라이언트 앱이있는 모든 Android 버전) 또는 K9mail과 같은 이메일 클라이언트가 설치되어 있어야합니다.
단계 기술
1 Android 스튜디오를 사용하여 Android 애플리케이션을 만들고 com.example.tutorialspoint 패키지 아래에 Tutorialspoint 로 이름을 지정합니다 .
2 src / MainActivity.java 파일을 수정 하고 이메일 전송을 처리하는 데 필요한 코드를 추가합니다.
레이아웃 XML 파일 res / layout / activity_main.xml 수정 필요한 경우 GUI 구성 요소를 추가하십시오. 이메일 클라이언트를 시작하는 간단한 버튼을 추가하고 있습니다.
4 res / values ​​/ strings.xml 을 수정 하여 필요한 상수 값을 정의합니다.
5 아래와 같이 AndroidManifest.xml 을 수정 합니다.
6 애플리케이션을 실행하여 Android 에뮬레이터를 시작하고 애플리케이션에서 수행 한 변경 결과를 확인합니다.

다음은 수정 된 주요 활동 파일의 내용입니다. src/com.example.Tutorialspoint/MainActivity.java.

package com.example.tutorialspoint;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      Button startBtn = (Button) findViewById(R.id.sendEmail);
      startBtn.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
            sendEmail();
         }
      });
   }
	
   protected void sendEmail() {
      Log.i("Send email", "");
      String[] TO = {""};
      String[] CC = {""};
      Intent emailIntent = new Intent(Intent.ACTION_SEND);
      
      emailIntent.setData(Uri.parse("mailto:"));
      emailIntent.setType("text/plain");
      emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
      emailIntent.putExtra(Intent.EXTRA_CC, CC);
      emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");
      emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");
      
      try {
         startActivity(Intent.createChooser(emailIntent, "Send mail..."));
         finish();
         Log.i("Finished sending email...", "");
      } catch (android.content.ActivityNotFoundException ex) {
         Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
      }
   }
}

다음 내용은 res/layout/activity_main.xml 파일-

여기서 abc는 tutorialspoint 로고에 대해 나타냅니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Sending Mail Example"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point "
      android:textColor="#ff87ff09"
      android:textSize="30dp"
      android:layout_above="@+id/imageButton"
      android:layout_alignRight="@+id/imageButton"
      android:layout_alignEnd="@+id/imageButton" />
      
   <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageButton"
      android:src="@drawable/abc"
      android:layout_centerVertical="true"
      android:layout_centerHorizontal="true" />
      
   <Button 
      android:id="@+id/sendEmail"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/compose_email"/>
    
</LinearLayout>

다음 내용은 res/values/strings.xml 두 개의 새로운 상수를 정의하려면-

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">Tutorialspoint</string>
   <string name="compose_email">Compose Email</string>
</resources>

다음은의 기본 콘텐츠입니다. AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.Tutorialspoint" >
   
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.tutorialspoint.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

당신의 tutorialspoint신청. 실제 Android 모바일 장치를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고

툴바에서 Run 아이콘을 클릭 합니다. 응용 프로그램을 시작하기 전에 Android 스튜디오 설치 프로그램이 다음 창을 표시하여 Android 응용 프로그램을 실행할 옵션을 선택합니다. 옵션으로 모바일 장치를 선택하고 다음 화면이 표시되는 모바일 장치를 확인하십시오.

이제 사용 Compose Email버튼을 클릭하여 설치된 모든 이메일 클라이언트를 나열합니다. 목록에서 이메일을 보낼 이메일 클라이언트 중 하나를 선택할 수 있습니다. Gmail 클라이언트를 사용하여 아래 표시된대로 제공된 모든 기본 필드를 사용할 수있는 이메일을 보내겠습니다. 여기From: Android 기기에 등록한 기본 이메일 ID가됩니다.

주어진 기본 필드 중 하나를 수정하고 마지막으로 이메일 보내기 버튼을 사용하여 언급 된 수신자에게 이메일을 보낼 수 있습니다.