0

대괄호가 포함 된 InternetAddresses이 포함 된 MimeMessage을 받으면 MimeMessage.getAllRecipients()으로 전화하면 'javax.mail.internet.AddressException: Local address contains illegal character in string'이됩니다.전자 메일 주소의 대괄호 문자

"ABC NAME-DEM-SAST1" <ABCNAME-DEM-SAST1[[email protected]]>

는 위의 예는 실제 유효한 이메일 주소를 주소 :

이메일 주소는 아래 우리는 위의 예외가 한 예입니다? 그리고 그렇다면 왜 InternetAddress를 만들 수 없습니까?

InternetAddress add = 새 InternetAddress ("\"ABC NAME-DEM-SAST1\" <ABCNAME-DEM-SAST1[[email protected]]>", false);

나는 Javamail problem with ñ characters in mail addresses 질문을 대답했지만 아무 소용이 없었습니다.

javamail 1.4를 사용 중이며 JVM이 Linux 호스트 시스템에서 실행 중입니다.

이 문제에 대한 통찰력을 얻으실 수 있습니다.

감사합니다, PM.

답변

1

This explanation은 도메인 리터럴 (예 : [192.1.0.0])을 바인딩하는 경우를 제외하고 이메일 주소에서 "["및 "]"이 잘못된 문자임을 나타냅니다. 예 주소가 이름과 해당 주소를 표시해야하는 경우 , 올바른 구문이 될 것

"ABC NAME-DEM-SAST1" <[email protected]> 

대괄호 일회성 주소 (http://msdn.microsoft.com/en-us/library/cc842281.aspx)를 표시하기 위해 마이크로 소프트 오피스에서 사용하는,하지만 그건 아닌 것 같다 주어진 예제와 일치하지 않습니다.

The email address RFC.

+0

그 정보를 주셔서 감사합니다 Pyranja. 이 스타일로 서식이 지정된받는 사람 주소로받는 메시지는 모두 Exchange 서버/Outlook 클라이언트에서 가져옵니다. 이러한 비표준 수신자 주소 형식을 성공적으로 처리하기 위해 세션의 'mail.mime.address.strict'속성을 false로 설정했습니다. 우리가 처리하는 모든 SMTP 메시지는 클라이언트가 아닌 메일 서버에서 직접 전송되므로받는 사람 주소가 이미 원본 메일 서버에서 확인되었다고 가정합니다! 이것이 가장 유용한 솔루션인지는 모르겠지만 적어도 이제는 이러한 유형의 수신자 주소를 처리 할 수 ​​있습니다. –

관련 문제