본문 바로가기

James Server v3

HazelcastMailboxPathLocker 문의를 주셔서 남깁니다. James에서 기본으로 제공하는 JVMMailboxPathLocker 를 사용한다면 File repository 를 사용 중인 여러대의 James 라면 uildlist 가 깨질 수 있다.James 를 hazelcast 로 묶어 수정하려는 MailboxPath 를 LOCK 처리를 한다. import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import org.apache.james.mailbo.. 더보기
RENAME command > Subscription 문제 - outlook 2013 에서 메일 박스 RENAME 시 subscription 파일이 업데이트 되지 않아 기존 mailbox path 가 존재 하게 된다. - 이미 RENAME 되어 서버에 존재하지 않은 mailbox 에 다시 RENAME 을 할 경우 문제가 발생함. outlook이 구독 취소를 해야 command 보내는데 사용자가 그것까지 신경쓰는건 아닌 것 같고 그 과정에서 문제가 발생할 소지가 주어진다. public void renameMailbox(final MailboxPath from, final MailboxPath to, final MailboxSession session) throws MailboxException { ... final MailboxMapper mapper = m.. 더보기
outlook 약속 메일 bug.(Content-Transfer-Encoding: quoted-printable) header : Content-Transfer-Encoding: quoted-printable 아웃룩에서 인코딩을 정의해 놓고 정작 본문은 평문으로 보냈다. 결국 quoted-printable 로 디코딩되고 , 본문 중 DTEND;VALUE=DATE:20160102 =DA 부분이 quoted-printable 로 인식되어 문제가 발생한다. handler.body 에는 Content-Transfer-Encoding 로 디코딩된 Stream 이 넘어와 MimeStreamParser.parser(..) 중 T_BODY 에 isWrongInvitingMessageFromOutlook 추가 한다. apache-mime4j-core-0.7.2.jar 수정. ㅁ outlook 옵션 - 종일 - 제목 한글 - 위치 :.. 더보기
HP-UX 환경에서 JSW Wrapper 구축 시 발생하는 이슈 ※ HP-UX 환경에서 JSW Wrapper 구축 시 발생하는 이슈 1. JSW Wrapper Version. - appassembler-maven-plugin 에서 사용하는 jsw 의 버전이 3.2.3 이며 HP-UX 라이브러리가 없다. - wrapper-delta-pack-3.5.26 버전으로 교체해야 한다. [작업] 1) appassembler-maven-plugin 버전을 1.0 -> 1.10 으로 변경한다. 2) 강제로 appassembler-maven-plugin 의 - wrapper.jar 를 3.2.26 버전으로 교체한다. - hpux 관련 라이브러리를 넣어준다. pom.xml 의 버전을 변경을 해도 실제 jsw 의 wrapper 의 버전은 여전히 3.2.3 버전이라 교체를 해줘야 한다. .. 더보기
[Mime4J] DecoderUtil 의 Base64 parser 문제. -------------------------------------------------------------------------------------------------------------------------------------------- MIME [wiki]¶ MIME에서 정의하는 전자 메일 base64는 임의의 바이트 스트림을 화면에 표시할 수 있는 ASCII 문자들로 바꾸는 인코딩 방식을 말한다. 이 인코딩은 인터넷 전자 메일을 전송할 때 MIME의 content transfer encoding 의 하나로 정의된다. 인코딩된 문자열은 알파벳 대소문자와 숫자, 그리고 "+", "/" 기호 64개로 이루어지며, "="는 끝을 알리는 코드로 쓰인다. 베이스64의 정확한 규격은 RFC 1421.. 더보기
[Base64] ENAGE 잘못된 Encoding 예. ㅁ 지금까지 발생한 Base64 문제는 2가지 경우인데 미원상사에서 발생한 문제는 조금 다른 시각으로 봐야 한다. - case #1 : multi line decoding 을 java lib 들이 지원하지 않음 - case #2 : multi line decoding 에 서로 다른 charset - case #3 : ENAGX 라는 그룹웨어 메일로 발송한 메일인데 base64 를 Spec 에 맞지 않게 발송하였음. ㅁ 문제 Subject: =?ks_c_5601-1987?B?.........................MPisO3F68E=?= =?ks_c_5601-1987?B?.........................68DHILDHLCAg?= (......................... 은 혹시라도.. 더보기
수신자 메일 계정 마지막이 마침표 (.) 로 끝날 경우, 553 5.1.3 Syntax error in recipient address [RFC-5321] 4.1.2. Command Argument Syntax Local-part = Dot-string / Quoted-string ; MAY be case-sensitive Dot-string = Atom *("." Atom) [RFC-5322] 3.2.3. Atom Several productions in structured header field bodies are simply strings of certain basic characters. Such productions are called atoms. Some of the structured header field bodies also allow the period character (".", ASCII value 46) withi.. 더보기
[설정] SMTP delayTime and max retries ㅁ mx record 의 개수 만큼 re try 를 하고 connectiontimeout 으로 인해 Thread 가 대기 한다. 그리하여 deliveryThreads 중 대부분 retires 대기 상태가 되어 외부 발송이 지연된다. /conf/mailetcontainer.conf outgoing 5 minute 10 minute 0 0 50 true bounces 10000 2000 더보기
500 Line length exceeded. See RFC 2821 #4.5.3.1. EML 원문도 잘못 되었지만 메일을 스팸 서버가 받아서 메일 엔진으로 전달 시 발생. SMTP 를 통한 공격을 막기 위해 제한 했다고는 하는데 남들 다 받는데 얘만 못받으니 문제지 ㅁ 원인 - Bold 로 표기된 부분이 8192 가 넘을 경우 발생한다. ... MIME-Version: 1.0 X-Mailer: Mymailer 3.0 Content-Type: text/html; charset=EUC-KR Content-Transfer-Encoding: base64 PGh0bWw+DQ0KPHA+DQ0KPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+PFNUWUxFIFRZUEU9InRleHQvY3NzIj4JY... ㅁ RFC 2821 - Simple Mail Transfer Protocol 4.5.3.. 더보기
James distributed event system ㅁ James 이중화 시 발견되는 버그 - 메일 수신 시 EXIST, Expunge Response 가 되지 않음. ㅁ 문제 - 이중화 환경에서 메일 수신 / 삭제 등의 이벤트가 발생하는 경우 이벤트가 발생한 서버외의 분산 서버들은 이벤트를 클라이언트에게 전달하지 못한다. ㅁ RFC 2177-IMAP4 IDLE command 1. James #1 에 메일 수신 시 James #2 는 알 수 없음. SMTP -> LocalDelivery -> IMAP APPEND 2. James Event system. 3. To-be ㅁ Hazelcast manager log. 1) James #1 Started , James #2 Start up. 2) James #2 started. 3) James #2 stop. .. 더보기