Я решил это вместе с коллегой
, чтобы использовать прокси socks. Вы должны сделать следующее ..
внутри mail.jar вы можете найти класс SocketFetcher.внутри этого класса проверяется, задан ли объект фабрики сеанса или имя класса через системные свойства.Я реализовал собственное копирование SocketFactory из SSLSocketFactory, и мне пришлось манипулировать SocketFetcher внутри javaMail, и я заменил файл класса для вызова метода createSocket (host, port) из моего собственного SocketFactory.И там я использовал прокси для
String proxyHost = System.getProperty(SYSTEM_PROP_SOCKS_PROXY_HOST);
int proxyPort = Integer.parseInt(System.getProperty(SYSTEM_PROP_SOCKS_PROXY_PORT));
SocketAddress addr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
socket = new Socket(proxy);
Кроме того, мне пришлось манипулировать SocketFetcher.createSocket () ...
socket.connect(new InetSocketAddress(host, port));
... вы должны проверить, если сокет ужев противном случае будет сгенерировано исключение, и будет использован сокет по умолчанию, который не принадлежит вам
Удачи: -)