Я использую JavaMail и хочу, чтобы он работал через прокси для всех потоков (у меня есть многопоточное приложение).Для этого я использую SMTPTransport.connect (Сокет-сокет).
ОТЛАДКА: JavaMail версия 1.4.4 ОТЛАДКА: успешно загруженный ресурс: /META-INF/javamail.default.providers DEBUG: Таблицы загруженных поставщиков DEBUG: Поставщики перечислены в классеИмя: {com.sun.mail.smtp.SMTPSSLTransport = javax.mail.Provider [TRANSPORT, smtps, com.sun.mail.smtp.SMTPSSLTransport, Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport = javax.mail.Provider [TRANSPORT, smtp, com.sun.mail.smtp.SMTPTransport, Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore = javax.mail.Provider [STORE, imaps, com.sun.mail.imap.IMAPSSLStore, Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore = javax.mail.Provider [STORE, pop3s, com.sun.mail.pop3.POP3SSLStore, Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore = javax.mail.Provider [STORE, imap, com.sun.mail.imap.IMAPStore, Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store = javax.mail.Provider [STORE, pop3, com.sun.mail.pop3.POP3Store, Sun Microsystems, Inc]} ОТЛАДКА: Поставщики перечислены в протоколе: {imaps = javax.mail.Provider [STORE, imaps, com.sun.mail.imap.IMAPSSLStore, Sun Microsystems, Inc], imap = javax.mail.Provider [STORE, imap, com.sun.mail.imap.IMAPStore, Sun Microsystems, Inc], smtps =javax.mail.Provider [TRANSPORT, smtps, com.sun.mail.smtp.SMTPSSLTransport, Sun Microsystems, Inc], pop3 = javax.mail.Provider [STORE, pop3, com.sun.mail.pop3.POP3Store, Sun Microsystems, Inc], pop3s = javax.mail.Provider [STORE, pop3s, com.sun.mail.pop3.POP3SSLStore, Sun Microsystems, Inc], smtp = javax.mail.Provider [ТРАНСПОРТ, smtp, com.sun.mail.smtp.SMTPTransport, Sun Microsystems, Inc]} DEBUG: успешно загружен ресурс: /META-INF/javamail.default.address.map DEBUG: getProvider (), возвращающий javax.mail.Provider [TRANSPORT, smtp, com.sun.mail.smtp.SMTPTransport, Sun Microsystems, Inc] Отладка SMTP: useEhlo true, useAuth true Отладка SMTP: useEhlo true, useAuth true DEBUG SMTP: запуск протокола для хоста «smtp.googlemail.com», порт 465 Отладка SMTP: ответ на чтение исключения: java.net.SocketTimeoutException: чтение тайм-аута. Ответ на чтение исключения. javax.mail.MessagingException: исключение ответа на чтение;Вложенное исключение: java.net.SocketTimeoutException: тайм-аут чтения на com.sun.mail.smtp.SMTPTransport.readServerResponse (SMTPTransport.java:2153) на com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:) на com.sun.mail.smtp.SMTPTransport.protocolConnect (SMTPTransport.java:636) на javax.mail.Service.connect (Service.java:317) на javax.mail.Service.connect (Service.java:176)на javax.mail.Service.connect (Service.java:125) на com.sun.mail.smtp.SMTPTransport.connect (SMTPTransport.java:274) на lsmtpc.CheckAccount.run (CheckAccount.java:203) на java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:471) в java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:334) в java.util.concurrent.FutureTask.run (FutureTask.j166) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1110) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:603) в java.lang.Thjr.: 722) Вызвано: java.net.SocketTimeoutИсключение: Тайм-аут чтения в java.net.SocketInputStream.socketRead0 (собственный метод) в java.net.SocketInputStream.read (SocketInputStream.java:150) в java.net.SocketInputStream.read (SocketInputStream.java:121) в com.sun.mail.util.TraceInputStream.read (TraceInputStream.java:110) в java.io.BufferedInputStream.fill (BufferedInputStream.java:235) в java.io.BufferedInputStream.read (BufferedInputStream.java:254) вcom.sun.mail.util.LineInputStream.readLine (LineInputStream.java:89)
в
com.sun.mail.smtp.SMTPTransport.readServerResponse (SMTPTransport.java:2131)
... еще 13
Итак, как я вижу, JavaMail не может читать из сокета. Так что я делаю не так? Если я пытаюсь использовать метод transport.connect () без использования Socket в конструкторе, все работает отлично, и smtpHost / smtpPort доступны из telnet, и у меня нет никаких брандмауэров / антивирусов.