2015-01-23 2 views
1

IM이 프록시를 통해 POP3 서버에서 메일을 가져 오려고합니다. 프록시 문제가,프록시를 통한 SMTP/POP3 System.getProperties()와 새 Properties()?

java.net.SocketException: Can't connect to SOCKS proxy:Connection timed out: connect. 

내 POP3 서버가 모든 연결을 기록하지 않습니다 제안 : 대부분의 "튜토리얼"나는 같은 것을 할 경우 나는 예외가 지금

Properties p = System.getProperties(); 
p.setProperty("proxySet", "true");//does this line even do anything? 
p.setProperty("socksProxyHost", proxyHost); 
p.setPorperty("socksProxyPort", proxyPort); 
p.setProperty("socksProxyVersion", "5");//or 4 if you want to use 4 
p.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY); 
p.setProperty("mail.pop3.socketFactory.fallback", "false");//also not sure what it does 
p.setProperty("mail.pop3.port", portOnHostYouWantToTalkTo); 
p.setProperty("mail.pop3.socketFactory.port", portOnHostYouWantToTalkTo); 

Session session = Session.getDefaultInstance(p, null); 
//or session = Session.getInstance(p, null); 

URLName urlName = new URLName(protocol, hostYouwantToTalkTo, portOnHostYouWantToTalkTo, null, mailbox, mailboxPassword); 
Store store = session.getStore(urlName); 

같은 일을 제안 또는 내 코드의 오류. 현재 73.29.157.190:29099를 사용 중입니다.

2) 그러나, 나는 내 POP3 서버가 로컬 호스트에서 연결을 기록하고 나는 그것을에 연결하기 위해 프록시를 사용하지 오전 다른 모든 좋은 것을 제안, 제대로 작동

Properties p = new Properties(); 
//all the same logic and stuff 
Session = Session.getInstance(p, null); 

할 경우.

"튜토리얼"이 System.getProperties()를 사용하고 getInstance()에 전달하는 이유는 무엇입니까? 모든 Session 인스턴스는 System.properties에 대한 참조를 유지합니다. 그래서, 모든 Session 인스턴스는 새로운 인스턴스를 생성하거나 System.getProperties()를 어떤 식 으로든 변경하려고 할 때마다 영향을 받으므로 동일한 인스턴스를 재사용 할 수도 있습니다.

javamail은 Session에 전달되는 것이 아니라 System.properties에 특별히 설정된 것을 필요로합니까?

또한 javamail에서 프록시를 사용하려면 어떤 매개 변수를 설정해야합니까? 내 새로운 속성과 달리 System.properties가 작동하게하는 것은 무엇입니까? 그것을 설명하는 좋은 튜토리얼이나 문서에 대한 링크는 크게 감사하겠습니다.

감사합니다.

답변

0

처음으로 get rid of all the socket factory stuff, 필요하지 않습니다.

다음으로 웹 프록시가 아니라 SOCKS 프록시가 있는지 확인하십시오. 그렇다면 this JavaMail FAQ entry을 참조하십시오.

SOCKS 프록시의 시스템 속성을 설정하면 프로그램에서 의 모든 네트워크 연결이 프록시 서버를 통과하게됩니다. 이는 원하는 결과가 아닐 수 있습니다.

+0

감사합니다. 진짜 질문은 자바 메일이 프록시를 통해 검색 (또는 전송)하려고 할 때 속성에서 설정해야하는 것이 무엇입니까? – user1219387

+0

FAQ 항목을 읽었습니까? SOCKS 프록시를 사용 하시겠습니까? –

+0

아니요, 확실하지 않습니다. 그러나 이것은 현재로서는 부적합하다. 현재 중요한 문제는 mail.pop3.socks.port 및 mail.pop3.socks.host를 설정해도 아무런 효과가 없다는 것입니다. 적절한 JVM 및 Java 메일 버전이 있습니다. 다른 곳에서는 http 프록시 세트가 없습니다. 나는이 시점에서 POP3 서버가 단순히 프록시를 사용하지 않는 것처럼 연결을 받아들이고 그렇지 않으면 똑같이 작동하는 이유에 대해 간단히 설명합니다. – user1219387