2011-04-18 3 views
1

회사 웹 사이트에 온라인으로 사용할 Java 애플릿을 만들고 있습니다.Java Applet 이메일 문제

애플릿은 본질적으로 사용자에게 제품의 중요한 주문 세부 정보를 요구하는 동적 온라인 양식으로, 회사에서 관리하는받은 편지함에있는 주소로 전자 메일을 보냅니다. 로컬 테스트 환경에서 애플릿을 만들었지 만 실제로 애플릿이 실행될 때와 동일한 웹 서버에있는 테스트 위치로 이동하면 Internet Explorer의 Java 콘솔에서 다음과 같은 오류가 발생합니다. :

DEBUG: can't get java.home: java.security.AccessControlException: 
access denied (java.util.PropertyPermission java.home read) 

(I 주제에 수행 한 연구의 일부에서) 문제는 그 또한 최종 이메일의 대상이며 회사 (웹 사이트를 실행하는) 웹 서버와 메일 서버 (전자 메일을 보내기 위해 JavaMail API와 함께 사용하려고하는 SMTP 서버)가 서로 다른 IP 주소에 있습니다 (동일한 네트워크에 있지만). 따라서이 애플릿은 신뢰할 수없고 서명되지 않은 애플릿이므로 애플릿에는 SMTP 서비스에 액세스 할 수있는 보안 권한이 없습니다.

이 문제를 해결할 수있는 몇 가지 방법을 생각해 보았습니다.하지만 양식을 이메일로 보낼 수 있도록 JavaMail API를 사용하여 Java Servlet을 활용해야합니까? 아니면 애플릿 자체에 서명해야하고 애플릿이 회사의 SMTP 서버에 액세스하도록 허용해야합니까?

모든 의견/제안 사항이 도움이 될 것입니다.

+1

내가 클라이언트에서 SMTP에 의존하지 않을 것입니다. 어떤 포트가 클라이언트 방화벽에 의해 차단 될 수 있는지 알 수 없습니다. –

+0

양식을 전자 메일로 보내지 않으려 고합니다. 애플릿이 사용자 로컬 컴퓨터에서 실행되면 시스템을 통해 전자 메일을 보내는 기능을 리버스 엔지니어링 할 수 있습니다. 신청서에 서명 만하면 문제가 해결 될 수 있습니다. – Daisetsu

+0

@Daisetsu 왜 응용 프로그램에 서명하면 응용 프로그램이 리버스 엔지니어링되지 않을지 이해가되지 않습니다. (보안은 놀라 울 정도로 당연한 일이기 때문에 의외로 응용 프로그램에 서명하는 것이 가장 좋은 아이디어는 아닐 수도 있습니다. (마찬가지로 서명 된 응용 프로그램을 신뢰합니다.) –

답변

1

현재 스팸 메일 수신을 피하기 위해 정품 메일 서버로 판단되는 컴퓨터의 메일 만 수락하는 것이 일반적입니다. 귀하의 메일 서버가 지금 그런 식으로 설정되지 않은 경우에도 미래에있을 수 있습니다. 그러므로 미래를 보장하고 서블릿을 사용하십시오!

(서블릿을 사용하는 또 다른 이유는 방화벽이지만, 그. 적용되지 않을 수도 있습니다)

+0

답장을 보내 주셔서 감사 드리며, 저는 회사의 일부 사람들과 문제를 논의했으며 서블릿과 함께 갈 것이라고 생각합니다. –