목록개발이야기/이메일시스템 (20)
준호씨의 블로그
sendmail 로그 항목에 대한 설명
요지는 mail.smtp.ssl.protocols 에 "SSLv2Hello SSLv3" 를 지정하는 것이다. 아래 처럼 property 에 추가 하면 된다. props.put("mail.smtp.ssl.protocols", "SSLv2Hello SSLv3"); 만약 SSLv2Hello 를 하지 않고 처음부터 SSLv3 를 사용하려면 SSLv3 만 넣으면 된다. 실행 할 때 VM options 에 아래 내용을 추가 하면 Handshake 과정을 찍어 볼 수 있다. -Djavax.net.debug=ssl,handshake SSLv2 client hello message 를 날린 다음 SSLv3 Handshake 를 하고 있다. main, WRITE: SSLv3 Handshake, length = 175 ma..
개인적인 이메일은 이메일 사이트 가입해서 그냥 보내면 되지만 서비스를 개발하다 보면 특정한 이벤트 (회원 가입 이메일 등) 가 있을때 메일을 발송한다거나 대량으로 메일을 발송해야 할 일 (회원약관 변경 메일 발송 등) 이 있다. 직접 메일 발송 서버를 구축해도 되지만 메일발송서버를 직접 구축해서 운영하는건 만만찮은 일이 아니다. 발송 서버의 IP가 스팸 IP 로 등록되지 않게 관리 해야 되고 스팸 IP로 등록되면 풀어 달라고 요청도 해야 한다. 발송서버의 Reverse DNS 라던지 도메인 관리도 해 줘야 한다. SPF니 DKIM이니 DMARC니 스팸으로 필터링 되지 않기위해 해야 되는 조치들도 많이 있다. 발송 결과를 확인한다거나 통계를 내려면 구현해야 될 것들이 한 가득이다. 메일발송 서비스 사이트들..
imap folder list 조회 할 때 보통 utf7 로 나오는데 이를 java 에서 decode 하는 방법이다. 다른 여러 좋은 라이브러리들이 있겠지만 gnu.inet 의 라이브러리를 사용 해 보자. 라이브러리는 https://maven-repo.evolvis.org/3rdparty/org/gnu/inetlib/1.1.1/ 에서 받을 수 있고 http://www.gnu.org/software/classpathx/inetlib/javadoc/index.html?gnu/inet/imap/UTF7imap.html 에 문서가 있다. maven 으로 바로 가져 올 수 있을 거 같은데 아직 찾지 못했다. UTF7imap class 에 static 함수로 decode 와 encode 가 있으니 따로 객체 생성 ..
아래는 telnet 에서 smtp 포트인 25번 포트로 메일을 바로 발송 하는 과정입니다. 결과 메일을 발송하는 과정은 일단 메일 주소의 도메인의 MX 레코드를 찾는 것부터 시작 됩니다. 메일주소에서 도메인이 daum.net 이라면 dig 명령어나 nslookup 등의 명령어로 MX 레코드가 어떻게 되는지 확인 해 볼 수 있습니다. daum.net 의 경우 mx1~4.daum.net 으로 되어 있음을 알 수 있습니다. (이 정보는 종종 바뀌기도 합니다.) 자 telnet 으로 mx1.hanmail.net 에 접속해 보겠습니다. SMTP 는 기본적으로 25번 프로토콜을 이용합니다. junho85@junho85:~$ telnet mx1.hanmail.net 25 Trying 211.110.65.13... C..