Friday, 5 August 2016

Android -send email -code example-in Android studio

06:02

see directory structure given below and THEN  start coding:





(1)write  code  for SendEmailActivity.java    file:

package testing.om.com.sendemail;

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.
activity_send_email);

       
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 :"));

            }
        });
    }
}







(2)write code for  activity_send_email.xml  file:

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

    android:layout_height="match_parent" android:fitsSystemWindows="true"

    tools:context=".SendEmailActivity">



    <android.support.design.widget.AppBarLayout android:layout_height="wrap_content"

        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">



        <android.support.v7.widget.Toolbar android:id="@+id/toolbar"

            android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"

            android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />



    </android.support.design.widget.AppBarLayout>



    <include layout="@layout/content_send_email" />



    <android.support.design.widget.FloatingActionButton android:id="@+id/fab"

        android:layout_width="wrap_content" android:layout_height="wrap_content"

        android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin"

        android:src="@android:drawable/ic_dialog_email" />



</android.support.design.widget.CoordinatorLayout>
 
 
(3)write  code for  content_send_email.xml  file:
 
<?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>
 


Output :









=====================================================================
Now write code for sending email  with Attachment of image file:



Send Email with Attachment in Android | Code for send email in Android | Sample demo for sending email in android with attachment
This is a simple demo for send email in Android with attachment. For attachment I am using Intent.ACTION_GET_CONTENT.
Don't forget to add permissions in your manifest.xml-

  <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />




(1)write  code  for MainActivity.java   file  :

package testing.om.com.sendemailwithattached;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/**
 *
 * @author om sir
 *
 */
public class MainActivity extends Activity implements OnClickListener {

    EditText
editTextEmail, editTextSubject, editTextMessage;
    Button
btnSend, btnAttachment;
    String
email, subject, message, attachmentFile;
    Uri
URI = null;
   
private static final int PICK_FROM_GALLERY = 101;
   
int columnIndex;

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.
activity_main);
       
editTextEmail = (EditText) findViewById(R.id.editTextTo);
       
editTextSubject = (EditText) findViewById(R.id.editTextSubject);
       
editTextMessage = (EditText) findViewById(R.id.editTextMessage);
       
btnAttachment = (Button) findViewById(R.id.buttonAttachment);
       
btnSend = (Button) findViewById(R.id.buttonSend);

        
btnSend.setOnClickListener(this);
       
btnAttachment.setOnClickListener(this);
    }

   
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
            
/**
             * Get Path
             */
           
Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.
DATA };

            Cursor cursor = getContentResolver().query(selectedImage,filePathColumn,
null, null, null);
            cursor.moveToFirst();
           
columnIndex = cursor.getColumnIndex(filePathColumn[0]);
           
attachmentFile = cursor.getString(columnIndex);
            Log.e(
"Attachment Path:", attachmentFile);
           
URI = Uri.parse("file://" + attachmentFile);
            cursor.close();
        }
    }

   
@Override
   
public void onClick(View v) {

       
if (v == btnAttachment) {
            openGallery();

        }
       
if (v == btnSend) {
           
try {
                
email = editTextEmail.getText().toString();
               
subject = editTextSubject.getText().toString();
               
message = editTextMessage.getText().toString();

               
final Intent emailIntent = new Intent(
                        android.content.Intent.
ACTION_SEND);
                emailIntent.setType(
"plain/text");
                emailIntent.putExtra(android.content.Intent.
EXTRA_EMAIL,
                       
new String[] { email });
                emailIntent.putExtra(android.content.Intent.
EXTRA_SUBJECT,
                       
subject);
               
if (URI != null) {
                    emailIntent.putExtra(Intent.
EXTRA_STREAM, URI);
                }
                emailIntent
                        .putExtra(android.content.Intent.
EXTRA_TEXT, message);
               
this.startActivity(Intent.createChooser(emailIntent,
                       
"Sending email..."));

            }
catch (Throwable t) {
                Toast.makeText(
this,
                       
"Request failed try again: " + t.toString(),
                        Toast.
LENGTH_LONG).show();
            }
        }

    }

   
public void openGallery() {
        Intent intent =
new Intent();
        intent.setType(
"image/*");
        intent.setAction(Intent.
ACTION_GET_CONTENT);
        intent.putExtra(
"return-data", true);
        startActivityForResult(
                Intent.createChooser(intent,
"Complete action using"),
               
PICK_FROM_GALLERY);

    }

}


(2)write  code  for activity_main.xml file :

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

    android:layout_height="match_parent" android:fitsSystemWindows="true"

    tools:context=".MainActivity">



    <android.support.design.widget.AppBarLayout android:layout_height="wrap_content"

        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">



        <android.support.v7.widget.Toolbar android:id="@+id/toolbar"

            android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"

            android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />



    </android.support.design.widget.AppBarLayout>



    <include layout="@layout/content_main" />



    <android.support.design.widget.FloatingActionButton android:id="@+id/fab"

        android:layout_width="wrap_content" android:layout_height="wrap_content"

        android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin"

        android:src="@android:drawable/ic_dialog_email" />



</android.support.design.widget.CoordinatorLayout>


(3)now write code for  content_main.xml file:
<ScrollView 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:padding="5dp"

    tools:context=".MainActivity" >



    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_margin="5dp"

        android:layout_marginTop="20dp"

        android:orientation="vertical"

        android:padding="5dp" >



        <EditText

            android:id="@+id/editTextTo"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignParentLeft="true"

            android:layout_alignParentTop="true"

            android:layout_margin="5dp"

            android:layout_marginTop="200px"



            android:hint="Email Address!"

            android:inputType="textEmailAddress"

            android:singleLine="true" />



        <EditText

            android:id="@+id/editTextSubject"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_below="@id/editTextTo"

            android:layout_margin="5dp"

            android:hint="Subject"

            android:singleLine="true" />



        <EditText

            android:id="@+id/editTextMessage"

            android:layout_width="match_parent"

            android:layout_height="200dp"

            android:layout_below="@id/editTextSubject"

            android:layout_margin="5dp"

            android:gravity="top|left"

            android:hint="type message here!"

            android:inputType="textMultiLine" />



        <Button

            android:id="@+id/buttonSend"

            android:layout_width="80dp"

            android:layout_height="50dp"

            android:layout_below="@id/editTextMessage"

            android:layout_margin="5dp"

            android:text="Send" />



        <Button

            android:id="@+id/buttonAttachment"

            android:layout_width="wrap_content"

            android:layout_height="50dp"

            android:layout_alignParentRight="true"

            android:layout_alignParentTop="true"

            android:text="attachment" />

    </LinearLayout>



</ScrollView>






Output:






Written by

We are Creative Blogger Theme Wavers which provides user friendly, effective and easy to use themes. Each support has free and providing HD support screen casting.

6 comments:

  1. This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.
    Android Training in Chennai

    ReplyDelete
  2. I just want to say thank you for sharing this post, it was really awesome and very informative. Thank youIf anyone searching for Android training certification in India. Join us

    ReplyDelete

 

© 2013 ANDROID TRAINING IN MUMBAI BY OM SIR. All rights resevered. Designed by Templateism

Back To Top