Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpMlErr 276 of 299 menu
◀ ▶

Ошибка отправки в Kotlin

Если порт или хост недоступны, Transport.send бросает MessagingException. В учебном коде ошибку ловят, печатают текст и продолжают работу - например, закрывают тестовый сервер в блоке finally.

Намеренно указывают неверный порт, пока на правильном порту GreenMail не слушает:

import com.icegreen.greenmail.util.GreenMail import com.icegreen.greenmail.util.ServerSetupTest import jakarta.mail.Message import jakarta.mail.MessagingException import jakarta.mail.Session import jakarta.mail.Transport import jakarta.mail.internet.InternetAddress import jakarta.mail.internet.MimeMessage import java.util.Properties fun main() { val server = GreenMail(ServerSetupTest.SMTP) server.start() server.setUser("reader@local.test", "reader", "pass") val props = Properties() props["mail.smtp.host"] = "127.0.0.1" props["mail.smtp.port"] = "9" props["mail.smtp.auth"] = "false" props["mail.smtp.connectiontimeout"] = "2000" props["mail.smtp.timeout"] = "2000" val session = Session.getInstance(props) val letter = MimeMessage(session) letter.setFrom(InternetAddress("writer@local.test")) letter.setRecipient( Message.RecipientType.TO, InternetAddress("reader@local.test"), ) letter.subject = "Will fail" letter.setText("No listener on port 9.") try { Transport.send(letter) println("sent") } catch (ex: MessagingException) { println(ex.message) } server.stop() }

Строка "sent" не появляется. Вместо неё в консоли - описание ошибки соединения из исключения. Программа доходит до server.stop без необработанного падения.

Укажите порт 9999 при запущенном GreenMail на другом порту. Перехватите MessagingException и выведите message исключения.

Повторите отправку с неверным портом, но после ошибки выведите "done". Убедитесь, что метка печатается и сервер останавливается штатно.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить