2012-07-31 2 views
0

이메일 서버 (내 경우 gmail이지만 향후 변경 될 수 있음)에서 메시지를 가져 와서 일부 정보를 읽는 javaMail (링크 here)에 대한 일종의 포트를 사용해야합니다.javamail API에 메시지의 보낸 사람 배열이있는 이유는 무엇입니까?

API에서 알아챈 점 중 하나는 here과 같이 getFrom 메서드가 Address 개체의 배열을 반환한다는 것입니다.

내 질문은 :

  1. 빈 배열
  2. 1 개 이상 보낸 사람

: 어떤 경우 것이 방법의 반환에?

내 이메일에는 모두 보낸 사람이 아무리 이상 하던지 (CC, 숨은 참조, 전달) 정확히 모든 발신자 한 명이 있습니다.

"특정 구현에서는 실제로 메시지를 보낸 엔티티와 다를 수 있습니다." , 그래서 누가 어떻게 메시지를 보냈는지 알 수 있었고, 현재 구현이 괜찮 으면?

답변

1

프리스트 두는 API에서 직접 :

(이 속성 = 질문에 이메일의 속성 '에서')

1) This method returns null if this attribute is not present in this message.

2) Returns an empty array if this attribute is present, but contains no addresses.

3) 전자 메일의 '보낸 사람'필드를 확인하고 해당 필드에서 주소가 인 주소 개체 하나를 반환합니다. 따라서 하나 이상의 '보낸 사람'이 나열되어있을 때 크기가 1보다 큰 배열을 반환합니다.

+0

보낸 사람이없는 것은 어떻게 될 수 있습니까? # 1과 # 2의 차이점은 무엇입니까? 나는 아직도 어떤 경우에는 하나 이상의 발신자 또는 0이 생기지 않는다. 이메일 서버의 문제일까요? 그러한 이상한 시나리오가 발생할 것이라는 시나리오를 생각해 낼 수 있습니까? –

+0

시스템 생성 전자 메일이 잘못 작성되어 보낸 사람 필드를 벗어나거나 가능하게 필드를 추가하지만 보낸 사람 값을 추가하지 않을 수 있습니다. 그것은있을 법하지는 않지만 가능할 수있는 것들 중 하나입니다. –

+0

전자 메일 메시지의 내용에 대한 인증은 없습니다. 단, 메시지에 서명하고 서명을 확인해야합니다. 그렇지 않으면 메시지에 true 또는 false가 포함될 수 있으므로 신뢰하는 것에주의해야합니다. 그래서 모든 이메일의 98 %가 스팸입니다. –

관련 문제