Почтовый тайм-аут Java и обработка connectiontimeout

Я использую JavaMail для отправления почтовых запросов к серверу SMTP.

Я хотел бы установить и "mail.smtp.connectiontimeout" и "mail.smtp.timeout" свойства в рамках моего кода.

Программно, я хочу поймать и когда тайм-аут и connectiontimeout операции достигнуты в Java и обрабатывают вещи соответственно. Обрабатывая в смысле, я должен повторить ту же электронную почту еще раз в следующий раз.

Как я обрабатываю это в Java/JavaMail? Действительно ли возможно поймать и обработать этот тайм-аут операции?

Править

Кроме того, действительно ли возможно моделировать/воспроизвести эту операцию тайм-аута на моем собственном предположении, что у меня есть полный административный доступ к серверу SMTP?

5
задан Gnanam 7 May 2010 в 11:34
поделиться

1 ответ

Все:

Отвечаю на свой вопрос, после того как испытал это на себе.

Как мне справиться с этим в Java/JavaMail? Можно ли перехватить и обработать эту таймаут операции?

Да, он автоматически выбрасывается как javax.mail.MessagingException.

javax.mail.MessagingException: Exception reading response;
  nested exception is:
        java.net.SocketTimeoutException: Read timed out
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
        at javax.mail.Service.connect(Service.java:297)
        at javax.mail.Service.connect(Service.java:156)
        at javax.mail.Service.connect(Service.java:105)

Это исключение возникает именно в этой строке:

Transport.connect();

Единственный открытый вопрос, который у меня сейчас есть: "Возможно ли смоделировать/воспроизвести эту операцию таймаута самостоятельно, предполагая, что у меня есть полный административный доступ к SMTP серверу?"

Есть идеи от экспертов?

1
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: