0

I tried implementing email intent in android but I am getting nothing on gmail. All the parameters are missing. Attaching my main_activity code. Please help!

import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import javax.security.auth.Subject


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var send : Button = findViewById(R.id.Send)

        send.setOnClickListener{
            var email: EditText = findViewById(R.id.Email_id)
            var subject: EditText = findViewById(R.id.Subject)
            var body: EditText = findViewById(R.id.Body)

            var EMAIL = email.text.toString().trim()
            var SUBJECT = subject.text.toString().trim()
            var BODY = body.text.toString().trim()

            var inTent = Intent(Intent.ACTION_SEND)
            inTent.data = Uri.parse("mailto:")
            inTent.type ="text/plain"

            inTent.putExtra("EXTRA_EMAIL",EMAIL)
            inTent.putExtra("EXTRA_SUBJECT",SUBJECT)
            inTent.putExtra("EXTRA_TEXT",BODY)


           startActivity(inTent)

        }
    }
}
  • You're using the wrong keys in the `putExtra()` calls. You want to use the constants in the `Intent` class instead of those literals; i.e., `Intent.EXTRA_EMAIL`, `Intent.EXTRA_SUBJECT`, and `Intent.EXTRA_TEXT`. – Mike M. Aug 11 '21 at 06:34
  • https://stackoverflow.com/a/59365539/7816573 - Android Studio mailto Intent doesn't show subject and mail body; This is the proper way after API 29 – CoffeeCode Aug 11 '21 at 06:58

1 Answers1

0

This works for me:

  val sendEmail = Intent(Intent.ACTION_SENDTO)
        val uriText = "mailto:" + Uri.encode("example@gmail.com").toString() +
                "?subject=" + Uri.encode("Subject").toString() +
                "&body=" + "Body"
        val uri: Uri = Uri.parse(uriText)

        sendEmail.data = uri
        startActivity(Intent.createChooser(send, "Title"))
Sadegh.t
  • 205
  • 3
  • 10