Отправка email c помощью javax.mail.Transport

220
30 ноября 2017, 02:02

Для отправки email используется метод

Transport.send(msg);

где Transport - класс из пакета javax.mail. В коде это выглядит так:

try {
    Session session = Session.getInstance(...);
    Message msg = new MimeMessage(session);
    ...
    Transport.send(msg);
} catch (Throwable e) {
    logger.error("Exception : ", e);
} finally {
    logger.info("Task ended");
}

и никаких ошибок в логах не появляется, но и до блока finally выполнение тоже не доходит. При дебаге выполнение просто доходит до Transport.send(msg); и как будто зависает - не доходит ни до catch, ни до finally. Firewall выключен. В чём причина этого "зависания"?

UPD

Судя по всему, это было из-за того, что по умолчанию таймаут установлен бесконечным. После установки таймаута:

props.put("mail.smtp.connectiontimeout", "60000"); // 60 seconds
props.put("mail.smtp.timeout", "60000");

в логах наконец начала появляться ошибка:

Exception : 
javax.mail.MessagingException: Exception reading response;
  nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2210)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
    at javax.mail.Service.connect(Service.java:297)
    at javax.mail.Service.connect(Service.java:156)
    at javax.mail.Service.connect(Service.java:105)
    at javax.mail.Transport.send0(Transport.java:168)
    at javax.mail.Transport.send(Transport.java:98)
    ...
Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
    at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89)
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2188)
    ... 11 more

А в чём может быть причина этой ошибки?

READ ALSO
почему не запускается jar файл? An unexpected error occurred while trying to open file

почему не запускается jar файл? An unexpected error occurred while trying to open file

Создал архив jar при помощи ANTКод сборки:

251
Программное отключение телефона

Программное отключение телефона

Нужно как-то в android приложении сделать так, чтобы при вызове void'a отключался телефон (полностью, не экран)Как это сделать? Подскажите, пожалуйста)

199