Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Kotlin का उपयोग करके Android में फाइल अटैचमेंट के साथ ईमेल कैसे भेजें?

यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके Android में फाइल अटैचमेंट के साथ ईमेल भेजने के लिए इंटेंट कैसे बनाया जाता है। Intent.ACTION_SEND और EXTRA_STREAM का उपयोग किया जाता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio खोलें, File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2: activity_main.xml में ईमेल फॉर्म UI बनाएं

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="4dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/etTo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:hint="Receiver's Email Address!"
        android:inputType="textEmailAddress"
        android:singleLine="true" />

    <EditText
        android:id="@+id/etSubject"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:hint="Enter Subject"
        android:singleLine="true" />

    <EditText
        android:id="@+id/etMessage"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_margin="5dp"
        android:gravity="top|start"
        android:hint="Compose Email"
        android:inputType="textMultiLine" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/btSend"
            android:layout_width="80dp"
            android:layout_height="50dp"
            android:layout_margin="5dp"
            android:text="Send" />

        <Button
            android:id="@+id/btAttachment"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:text="attachment" />

    </RelativeLayout>

    <TextView
        android:id="@+id/tvAttachment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableStart="@drawable/ic_baseline_attach_file_24"
        android:visibility="gone" />

</LinearLayout>

चरण 3: MainActivity.kt में ईमेल और अटैचमेंट लॉजिक

import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    lateinit var etEmail: EditText
    lateinit var etSubject: EditText
    lateinit var etMessage: EditText
    lateinit var send: Button
    lateinit var attachment: Button
    lateinit var tvAttachment: TextView
    lateinit var email: String
    lateinit var subject: String
    lateinit var message: String
    lateinit var uri: Uri

    private val PICK_FROM_GALLERY = 101

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        etEmail = findViewById(R.id.etTo)
        etSubject = findViewById(R.id.etSubject)
        etMessage = findViewById(R.id.etMessage)
        attachment = findViewById(R.id.btAttachment)
        tvAttachment = findViewById(R.id.tvAttachment)
        send = findViewById(R.id.btSend)

        send.setOnClickListener { sendEmail() }
        attachment.setOnClickListener { openFolder() }
    }

    private fun openFolder() {
        val intent = Intent().apply {
            type = "image/*"
            action = Intent.ACTION_GET_CONTENT
            putExtra("return-data", true)
        }
        startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_GALLERY)
    }

    private fun sendEmail() {
        try {
            email = etEmail.text.toString()
            subject = etSubject.text.toString()
            message = etMessage.text.toString()

            val emailIntent = Intent(Intent.ACTION_SEND).apply {
                type = "plain/text"
                putExtra(Intent.EXTRA_EMAIL, arrayOf(email))
                putExtra(Intent.EXTRA_SUBJECT, subject)
                putExtra(Intent.EXTRA_STREAM, uri)
                putExtra(Intent.EXTRA_TEXT, message)
            }

            startActivity(Intent.createChooser(emailIntent, "Sending email..."))
        } catch (t: Throwable) {
            Toast.makeText(this, "Request failed try again: $t", Toast.LENGTH_LONG).show()
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK && data != null) {
            uri = data.data!!
            tvAttachment.text = uri.lastPathSegment
            tvAttachment.visibility = View.VISIBLE
        }
    }
}

चरण 4: AndroidManifest.xml में अनुमतियां जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">

    <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" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

ऐप चलाएं

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में किसी एक्टिविटी फ़ाइल को खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और ऐप चलने पर डिफ़ॉल्ट स्क्रीन देखें।

मल्टीपल अटैचमेंट्स के लिए:

val uris: ArrayList<Uri> = arrayListOf(uri1, uri2, uri3)
emailIntent.action = Intent.ACTION_SEND_MULTIPLE
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris)
emailIntent.type = "*/*"

HTML ईमेल के लिए:

emailIntent.type = "text/html"
emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Bold Italic"))
  1. Android ऐप से HTML ईमेल कैसे भेजें? Android ऐप से HTML ईमेल कैसे भेजें?

    यह उदाहरण दर्शाता है कि Android ऐप से HTML फॉर्मेट में ईमेल कैसे भेजा जाए Intent का उपयोग करके। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML res/layout/activity_main.xml - ईमेल भेजने का बटन: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:an

  1. एंड्रॉइड में फाइल अटैचमेंट के साथ ईमेल कैसे भेजें? एंड्रॉइड में फाइल अटैचमेंट के साथ ईमेल कैसे भेजें?

    एंड्रॉइड में इंटेंट का उपयोग करके ईमेल भेजना यह ट्यूटोरियल दर्शाता है कि कैसे एक ईमेल कंपोजर बनाएं जिसमें प्राप्तकर्ता, विषय, संदेश और फाइल अटैचमेंट शामिल हों, फिर डिवाइस पर इंस्टॉल ईमेल ऐप्स का उपयोग करके भेजें। आवश्यक अनुमतियाँ <uses-permission android:name=android.permission.INTERNET /> &l

  1. Android में JavaMail API से ईमेल कैसे भेजें? Android में JavaMail API से ईमेल कैसे भेजें?

    यह उदाहरण दर्शाता है कि Android ऐप में JavaMail API का उपयोग करके प्रोग्रामेटिकली ईमेल कैसे भेजा जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं। चरण 2: निर्भरताएं जोड़ें build.gradle (Module: app) में JavaMail निर्भरताएं जोड़ें: dependencies { implementation