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

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

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

Намеренно указывают неверный порт, пока на правильном порту 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; public class Main { public static void main(String[] args) throws Exception { GreenMail server = new GreenMail(ServerSetupTest.SMTP); server.start(); server.setUser("reader@local.test", "reader", "pass"); Properties props = new Properties(); props.put("mail.smtp.host", "127.0.0.1"); props.put("mail.smtp.port", "9"); props.put("mail.smtp.auth", "false"); props.put("mail.smtp.connectiontimeout", "2000"); props.put("mail.smtp.timeout", "2000"); Session session = Session.getInstance(props); MimeMessage letter = new MimeMessage(session); letter.setFrom(new InternetAddress("writer@local.test")); letter.setRecipient( Message.RecipientType.TO, new InternetAddress("reader@local.test"), ); letter.setSubject("Will fail"); letter.setText("No listener on port 9."); try { Transport.send(letter); System.out.println("sent"); } catch (MessagingException ex) { System.out.println(ex.getMessage()); } server.stop(); } }

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

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

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

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