Programmatically Send an Email from Android App using Intent


Android Send Email from Activity
Android Send Email from Activity

Intents are messenger objects that are used to call Activities from a particular activity class. There are two types of Intents that you must know Explicit and Implicit Intents.

Implicit intents are used to call Activities that are defined within your project folder. To call other App Activity we need to use Explicit intents.

The code to send an email through your Android application from a Activity class is pretty simple. When this block of code is executed, a Dialog box is displayed with all the Email clients that are available on the device (e.g. Gmail, Mail, Outlook, Hotmail, Yahoomail etc), If no email client is found that you may get a pop-up saying "No Application can perform this action".

Steps:

  1. Create an Intent object emailIntent with Intent.ACTION_SEND
  2. Set type as message/rfc822 i.e. for MIME type
  3. Use Intent.EXTRA_EMAIL as a key to putExtra and where you need to add the Email-ID of the recipient.
  4. Use Intent.EXTRA_SUBJECT key and pass the value as the Subject of Email.
  5. Similarly Intent.EXTRA_TEXT value is the Body of the Email.
  6. In a try catch block call startActivity()
  7. In the Catch block if ActivityNotFoundException has occurred, i.e No Email client is found, we display a Toast Message.
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(Intent.EXTRA_EMAIL  , ""); // email id can be hardcoded too
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Hello");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "This is the Body!");
  try {
          startActivity(Intent.createChooser(emailIntent, "Done!"));
    } catch (android.content.ActivityNotFoundException ex) {
      Toast.makeText(MainActivity.this, "No Email client found!!",
     Toast.LENGTH_SHORT).show();
}
package com.code2care.example.emailexample;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
    
    
    private EditText emailID,emailSubject,emailBody;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        emailID = (EditText) findViewById(R.id.emailID);
        emailSubject = (EditText) findViewById(R.id.emailSubject);
        emailBody = (EditText) findViewById(R.id.emailBody);
    }
      
   public void sendEmail(View view) {
       
       Intent emailIntent = new Intent(Intent.ACTION_SEND);
       emailIntent.setType("message/rfc822");
       emailIntent.putExtra(Intent.EXTRA_EMAIL  , emailID.getText().toString());
       emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject.getText().toString());
       emailIntent.putExtra(Intent.EXTRA_TEXT   , emailBody.getText().toString());
         try {
                 startActivity(Intent.createChooser(emailIntent, "Select a Email Client"));
           } catch (android.content.ActivityNotFoundException ex) {
             Toast.makeText(MainActivity.this, "No Email client found!!",
            Toast.LENGTH_SHORT).show();
       }
         
         
       
   }
}

Layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.code2care.example.toastasservice.ToastasService" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
</RelativeLayout>



Recent Posts:




Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.