Send Email using Intent - Android Studio - Kotlin
How To Send an Email Using the Intent
Learn how to implement email functionality in your Android app using Kotlin and Android Studio IDE. This step-by-step guide covers using Android Intents to launch email clients with pre-filled recipient addresses, subjects, and message bodies.
>> Check For Java
Learn how to implement email functionality in your Android app using Kotlin and Android Studio IDE. This step-by-step guide covers using Android Intents to launch email clients with pre-filled recipient addresses, subjects, and message bodies.
>> Check For JavaVIDEO
Step 1: Create a new Project or open your project
Step 2: Code
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!--For Gmail Intent: Since Android 11 (API level 30), most user-installed apps are not visible by default. In your manifest, you must statically declare which apps you are going to get info about, as in the following:--> <queries> <package android:name="com.google.android.gm" /> </queries> .... </manifest>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" android:padding="10dp" tools:context=".MainActivity"> <!--EditText: Input the recipient--> <EditText android:id="@+id/recipientEt" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_edittext" android:hint="Recipient email(s)" android:inputType="textEmailAddress" android:padding="10dp" android:textColor="@color/colorBlack" /> <!--EditText: Input the subject of email--> <EditText android:id="@+id/subjectEt" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_edittext" android:hint="Subject" android:layout_marginTop="2dp" android:layout_marginBottom="2dp" android:inputType="text|textCapSentences" android:padding="10dp" android:textColor="@color/colorBlack" /> <!--EditText: Input the message--> <EditText android:id="@+id/messageEt" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_edittext" android:gravity="start" android:hint="Enter message here..." android:inputType="text|textCapSentences" android:minHeight="150dp" android:padding="10dp" android:textColor="@color/colorBlack" /> <!--Button: Launch existing email clients to send email--> <Button android:id="@+id/sendEmailBtn" style="@style/Base.Widget.AppCompat.Button.Colored" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:text="send Email" /> </LinearLayout>
MainActivity.kt
package com.technifysoft.emailintent import android.content.Intent import android.content.pm.PackageManager import android.os.Bundle import android.widget.Button import android.widget.EditText import androidx.appcompat.app.AppCompatActivity class MainActivity1 : AppCompatActivity() { //declare views private lateinit var mRecipientEt: EditText private lateinit var mSubjectEt: EditText private lateinit var mMessageEt: EditText private lateinit var mSendEmailBtn: Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //initializing views with activity_main.xml mRecipientEt = findViewById(R.id.recipientEt) mSubjectEt = findViewById(R.id.subjectEt) mMessageEt = findViewById(R.id.messageEt) mSendEmailBtn = findViewById(R.id.sendEmailBtn) //button click to get input and call sendEmail method mSendEmailBtn.setOnClickListener { //get input from EditTexts and save in variables val recipient = mRecipientEt.text.toString().trim() val subject = mSubjectEt.text.toString().trim() val message = mMessageEt.text.toString().trim() //method call for email intent with these inputs as parameters sendEmail(recipient, subject, message) } } private fun sendEmail(recipient: String, subject: String, message: String) { //call email share method val gmailPackage = "com.google.android.gm" // return true if gmail is installed val isGmailInstalled = isAppInstalled(gmailPackage) /*ACTION_SEND action to launch an email client installed on your Android device.*/ val intent = Intent(Intent.ACTION_SEND) // put recipient email in intent /* recipient is put as array because you may wanna send email to multiple emails so enter comma(,) separated emails, it will be stored in array*/ intent.putExtra(Intent.EXTRA_EMAIL, arrayOf(recipient)) //put subject of email intent.putExtra(Intent.EXTRA_SUBJECT, subject) //put message of email in intent intent.putExtra(Intent.EXTRA_TEXT, message) if (isGmailInstalled) { intent.type = "text/html" intent.setPackage(gmailPackage) startActivity(intent) } else { // allow user to choose a different app to send email with intent.type = "message/rfc822" startActivity(Intent.createChooser(intent, "choose an email client")) } } private fun isAppInstalled(packageName: String): Boolean { return try { packageManager.getApplicationInfo(packageName, 0) true } catch (e: PackageManager.NameNotFoundException) { false } } }

Comments
Post a Comment