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