android 在Kotlin中发送事件相关电子邮件

u0sqgete  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(178)

我想发送电子邮件给用户时,一些事件发生,我已经在互联网上搜索,我找不到如何做到这一点。有人能告诉我正确的路径。

xdnvmnnf

xdnvmnnf1#

我使用Javamail库在www.example.com电子邮件服务器的帮助下向用户发送电子邮件sendgrid.net。
然后,我只是实现了在什么事件,我想发送电子邮件给用户.使用最新版本的Javamail,不要忘记打开清单文件中的Internet权限

private fun sendMail(etEmail: EditText, etSubject: EditText, etMessage: EditText) {


        // Set up the mail server
        val host = "smtp.sendgrid.net"
        val props = Properties().apply {
            put("mail.smtp.auth", "true")
            put("mail.smtp.ssl.enable", "true")
            put("mail.smtp.host", host)
            put("mail.smtp.port", "465")
        }

        // Set up authentication
        val session = Session.getInstance(props, object : Authenticator() {
            override fun getPasswordAuthentication() =
                PasswordAuthentication("apikey","yourpaswordxyzfromsendgridaccount")
        })

        try {
            // Create a default MimeMessage object
            val message = MimeMessage(session).apply {
                setFrom(InternetAddress("abc@xyz"))
                addRecipient(Message.RecipientType.TO, InternetAddress(etEmail.text.toString()))
                subject = etSubject.text.toString()
                setText(etMessage.text.toString())
            }

            // Send the message
            thread(start = true) {
                Transport.send(message)
                println("Email sent successfully.")

                println("running from thread(): ${Thread.currentThread()}")
            }
            Toast.makeText(this,"Mail sent",Toast.LENGTH_LONG).show()


        } catch (e: MessagingException) {
            e.printStackTrace()
        }

}

相关问题