Send E-Mail Android Application Tutorial

Introduction

Hello all! In this article, we will learn how to create an Android app which will send an email using any email client. In this tutorial, we are using intent service of Android which will help us to send the email. Intent is very useful in Android development. It helps us to call the needed services, like calling, SMS, GPS, etc. It has a wider role in Android. 

Requirements

  • Android Studio 2.3.3
  • Little knowledge of Java and XML
  • Android Phone to test the Android app

Let’s get started.

Let’s start creating the Android app using Android Studio. I have also given the download link of the project, that you can find below.

Step 1 - Creating a new project with Android studio

Open Android Studio and create a new project, name it as "Send Email" and give a company domain whatever you like; for eg: foo.android (You can use your own name also).

  • Click "Next" and choose Min SDK; I have chosen Android 4.1 (Jelly Bean).
  • Click "Next" and select "Empty Activity".
  • Choose the Activity as Main Activity and click "Next", then "Finish".

    Android

    Android

Once we create our new project, gradle will take some time to sync the project and will resolve all the dependencies. Sometimes, this process also takes a lot of time.

Step 2 - Creating Layout of Send Email App

Here, we will create a layout for our app. So, for the tutorial purposes, I am keeping it simple. For sending an email, we usually need three fields, i.e., To, Subject, and Message. So, we will be creating a layout for three fields with the help of TextView and EditText and finally, we need a Send button to send the email.

XML code for our layout is shown below.

activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     tools:context="in.amitsin6h.sendemail.MainActivity"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     android:paddingLeft="20px"  
  8.     android:paddingRight="20px"  
  9.     android:orientation="horizontal"  
  10.     >  
  11.   
  12.     <EditText  
  13.         android:id="@+id/etTo"  
  14.         android:layout_width="wrap_content"  
  15.         android:layout_height="wrap_content"  
  16.         android:layout_alignParentRight="true"  
  17.         android:layout_alignParentTop="true"  
  18.         android:layout_marginRight="22dp"  
  19.         android:layout_marginTop="16dp"  
  20.         android:ems="10" />  
  21.   
  22.     <EditText  
  23.         android:id="@+id/etSub"  
  24.         android:layout_width="wrap_content"  
  25.         android:layout_height="wrap_content"  
  26.         android:layout_alignLeft="@+id/etTo"  
  27.         android:layout_below="@+id/etTo"  
  28.         android:layout_marginTop="18dp"  
  29.         android:ems="10" >  
  30.     </EditText>  
  31.   
  32.     <EditText  
  33.         android:id="@+id/etMsg"  
  34.         android:layout_width="wrap_content"  
  35.         android:layout_height="wrap_content"  
  36.         android:layout_alignLeft="@+id/etSub"  
  37.         android:layout_below="@+id/etSub"  
  38.         android:layout_marginTop="28dp"  
  39.         android:ems="10"  
  40.         android:inputType="textMultiLine" />  
  41.   
  42.     <TextView  
  43.         android:id="@+id/textView1"  
  44.         android:layout_width="wrap_content"  
  45.         android:layout_height="wrap_content"  
  46.         android:layout_alignBaseline="@+id/etTo"  
  47.         android:layout_alignBottom="@+id/etTo"  
  48.         android:layout_alignParentLeft="true"  
  49.         android:text="To:" />  
  50.   
  51.     <TextView  
  52.         android:id="@+id/textView2"  
  53.         android:layout_width="wrap_content"  
  54.         android:layout_height="wrap_content"  
  55.         android:layout_alignBaseline="@+id/etSub"  
  56.         android:layout_alignBottom="@+id/etSub"  
  57.         android:layout_alignParentLeft="true"  
  58.         android:text="Subject:" />  
  59.   
  60.     <TextView  
  61.         android:id="@+id/textView3"  
  62.         android:layout_width="wrap_content"  
  63.         android:layout_height="wrap_content"  
  64.         android:layout_alignBaseline="@+id/etMsg"  
  65.         android:layout_alignBottom="@+id/etMsg"  
  66.         android:layout_alignParentLeft="true"  
  67.         android:text="Message:" />  
  68.   
  69.     <Button  
  70.         android:id="@+id/btSend"  
  71.         android:layout_width="wrap_content"  
  72.         android:layout_height="wrap_content"  
  73.         android:layout_alignLeft="@+id/etMsg"  
  74.         android:layout_below="@+id/etMsg"  
  75.         android:layout_marginLeft="76dp"  
  76.         android:layout_marginTop="20dp"  
  77.         android:text="Send" />  
  78.   
  79.     </RelativeLayout>  

Step 3 – Send Email  Android App Java Code

This is our main part where we will write the code for our app.  We discussed in the introduction that we will be using intent to send an email. Intent uses the email service which will call the email client and send our app data from string to the email client and email client will use that data to send the email. It’s simple and easy to do.  :)

Just copy the below java code and paste it to MainActivity.java.

MainActivity.java

  1. package in.amitsin6h.sendemail;  
  2.   
  3. import android.content.Intent;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.widget.Button;  
  8. import android.widget.EditText;  
  9.   
  10. public class MainActivity extends AppCompatActivity {  
  11.   
  12.     EditText etTo, etSub, etMsg;  
  13.     Button btSend;  
  14.     String to, subject, message;  
  15.   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.   
  21.         etTo = (EditText) findViewById(R.id.etTo);  
  22.         etSub = (EditText) findViewById(R.id.etSub);  
  23.         etMsg = (EditText) findViewById(R.id.etMsg);  
  24.   
  25.         btSend = (Button) findViewById(R.id.btSend);  
  26.   
  27.         btSend.setOnClickListener(new View.OnClickListener() {  
  28.             @Override  
  29.             public void onClick(View view) {  
  30.                 to = etTo.getText().toString();  
  31.                 subject = etSub.getText().toString();  
  32.                 message = etMsg.getText().toString();  
  33.   
  34.   
  35.                 Intent email = new Intent(Intent.ACTION_SEND);  
  36.                 email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});  
  37.                 email.putExtra(Intent.EXTRA_SUBJECT, subject);  
  38.                 email.putExtra(Intent.EXTRA_TEXT, message);  
  39.   
  40.                 //need this to prompts email client only  
  41.                 email.setType("message/rfc822");  
  42.   
  43.                 startActivity(Intent.createChooser(email, "Choose Email client :"));  
  44.             }  
  45.         });  
  46.     }  
  47. }  

If anyone faces a problem in understanding the java code, they  can comment below and I will help you guys to understand.

Step 4 - Compile and Run

Now, we are ready to compile and run our Send Email Android app. The following screen will appear once our app gets installed.

Now, let us write and test the email and press the Send button to check whether it works or not. So, once we click the Send button, it will ask to choose the email client and then choose your email client and after sending the email check your inbox.

Android

Android

Android

Android

Project Source Code