Javamail Transport.send(сообщение) не работает в Android с использованием kotlin

Я хочу отправить электронное письмо пользователю, я следовал многим руководствам, и я делал то, что они делали, но когда я хочу выполнить Transport.send(сообщение), программа останавливается на этой строке,

          suspend fun sendEmail()   {
  
    try {
        val props = Properties()
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Log.d(TAG, "sendEmail: one")
        val session = Session.getInstance(props, object : Authenticator() {
            override fun getPasswordAuthentication(): PasswordAuthentication {
                return PasswordAuthentication("my email ", "my password")
            }
        })
        val mm = MimeMessage(session)
        mm.setFrom(InternetAddress("my email"))
        mm.addRecipient(Message.RecipientType.TO, InternetAddress("recipient email"))
        mm.subject = "subject"
        mm.setText("hi how are you")
        Log.d(TAG, "sendEmail: two")
        Transport.send(mm)
        Log.d(TAG, "sendEmail: three")
        
        


    }catch (e: MessagingException){
        Log.d(TAG, "sendEmail: ${e.message}")
       throw Exception(e.message)
        
    }

}

я могу зарегистрировать один и два, но три не будут отображаться, также я не могу зарегистрировать то, что находится внутри исключения исключения

любое решение?

1 ответ

Я нашел решение, мне следовало запустить sendEmail() с сопрограммой, заключенной в Dispatchers.IO

Другие вопросы по тегам