2010-02-09 4 views
3

두 고객의 경우 JavaMail이 인증되지 않아서 제품이 전자 메일을 보낼 수 없다는 사실을 알게되었습니다. 우리는 수년 동안 우리의 서버를 통해 이메일을 보내고 있으며 다른 여러 고객을 위해 이메일을 보내고 있으며 우리는이 모든 것을 위해 인증을 사용하고 있다고 생각했습니다.JavaMail이 인증되지 않는 이유는 무엇입니까?

transport = session.getTransport("smtp"); 
    transport.connect(hostName, port, user, password); 

을 우리가 연결() 메소드의 형식을 사용한 경우 JavaMail에 인증이 사용되어야하는 문서 here에 따르면 다음과 같이

코드 진행한다. 우리는 어떤 속성도 설정하지 않지만 해당 페이지를 제대로 읽는다면 필요하지 않습니다.

JBoss 4.2.1.GA에서 mail.jar을 사용하고 있습니다.

우리는 어떻게 다르게해야합니까?

업데이트 : 해당 설명서 페이지 (mail.smtp.auth 속성 설정 및 인증 자 제공)에서 다른 방법을 사용하면 인증이 마침내 작동합니다. 그러나 우리는이 방법으로 무엇을 잘못 했습니까?

답변

1

: 이것은 윈도우 상자 인 경우

는 또한, 방화벽 또는 바이러스 백신 실행하기위한 봐 대신에 다음과 같이 입력하십시오.

transport.sendMessage(message, message.getAllRecipients()); 

이것이 인증되지 않은 이유입니다. 그래서 이것이 진정한 해결책이라고 생각합니다. 내가 코드 조각을 게시했다면 도움이 되었 겠지만 문제가있는 곳이 어디인지는 몰랐습니다. 내 인생에서 Transport.send()가 정적 메서드 인 이유를 알 수는 없지만 알고 있다면 tell me을 입력하십시오.

2

가능한 디버그 정보를 보려면 props.put("mail.debug", "true");을 시도해보십시오. 더 많은 정보를 얻을 수 있습니다. 정적이다

transport.send(message, message.getAllRecipients()); 

을 : 나는 마침내 내가 전화 한 것을 발견 http://forums.sun.com/thread.jspa?threadID=590866

+1

이 작업을 수행 한 후에 Java가 문서의 내용을 단순히 수행하지 않는다는 것이 분명 해졌습니다. "사용자 이름과 암호 인수를 사용하여 Transport 연결 메서드를 명시 적으로 호출"은 인증을하지 않습니다. 메일 세션을 만들 때 Authenticator 개체를 제공하고 Authenticator 콜백 중에 사용자 이름과 암호 정보를 제공해야합니다. " 우리가 될까봐. 나는 그것을 recoded. 고마워, 선 ... – skiphoppy

관련 문제