package
com.ayush.gfgapp
import
android.os.Build
import
android.os.Bundle
import
android.view.View
import
android.widget.Button
import
android.widget.EditText
import
android.widget.Toast
import
androidx.annotation.RequiresApi
import
androidx.appcompat.app.AppCompatActivity
import
javax.mail.Authenticator
import
javax.mail.Message
import
javax.mail.MessagingException
import
javax.mail.PasswordAuthentication
import
javax.mail.Session
import
javax.mail.Transport
import
javax.mail.internet.AddressException
import
javax.mail.internet.InternetAddress
import
javax.mail.internet.MimeMessage
class
Test : AppCompatActivity(){
@RequiresApi
(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
val btn = findViewById<Button>(R.id.sendEmail)
val messageEditText = findViewById<EditText>(R.id.messageEditText)
btn.setOnClickListener {
val message = messageEditText.text.toString()
sendEmail(message)
}
}
private
fun sendEmail(message:String) {
try
{
val senderEmail =
"example@gmail.com"
val password =
"rqbianlmzsiezetj"
val receiverEmail =
"example2@gmail.com"
val stringHost =
"smtp.gmail.com"
val properties = System.getProperties()
properties[
"mail.smtp.host"
] = stringHost
properties[
"mail.smtp.port"
] =
"465"
properties[
"mail.smtp.ssl.enable"
] =
"true"
properties[
"mail.smtp.auth"
] =
"true"
val session = Session.getInstance(properties, object : Authenticator() {
override fun getPasswordAuthentication(): PasswordAuthentication {
return
PasswordAuthentication(senderEmail, password)
}
})
val mimeMessage = MimeMessage(session)
mimeMessage.addRecipient(Message.RecipientType.TO, InternetAddress(receiverEmail))
mimeMessage.subject =
"TEST#01"
mimeMessage.setText(message)
val t = Thread {
try
{
Transport.send(mimeMessage)
}
catch
(e: MessagingException) {
Toast.makeText(
this
@Test
,
"Error Occured"
,Toast.LENGTH_SHORT).show()
e.printStackTrace()
}
}
t.start()
}
catch
(e: AddressException) {
Toast.makeText(
this
@Test
,
"Error Occured $e"
,Toast.LENGTH_SHORT).show()
}
catch
(e: MessagingException) {
Toast.makeText(
this
@Test
,
"Error Occured $e"
,Toast.LENGTH_SHORT).show()
}
Toast.makeText(
this
@Test
,
"Sent Succesfully "
,Toast.LENGTH_SHORT).show()
}
}