목록개발이야기/이메일시스템 (20)
준호씨의 블로그
JavaMail API 로 eml 파일 파싱하는 방법을 정리 해 본다. 간단히 요역하자면, FileInputStream 으로 파일 불러와서 MimeMessage 만들 때 인자로 넣어주면 된다. 다음 예제를 보자. File emlFile = new File("src/main/resources/mail.eml"); Properties props = System.getProperties(); Session mailSession = Session.getDefaultInstance(props, null); // parse eml file InputStream inputStream = new FileInputStream(emlFile); MimeMessage message = new MimeMessage(mailS..
기본 예제(http://junho85.pe.kr/954) 에 다음과 같이 property 설정을 추가 해 준다. 메일 발송시 STARTTLS 를 지원하는 서버 이면 STARTTLS 를 이용해서 TLS(구 SSL) 암호화를 사용하게 된다. properties.setProperty("mail.smtp.starttls.enable", "true"); 참고 javamail 로 메일 발송 시 SSLv2Hello 이용해서 SSLv3 사용하기. ssl/tls 버전 지정하기. http://junho85.pe.kr/431
기본 예제(http://junho85.pe.kr/954) 에 다음과 같이 Transport.send 함수 두번째 인자로 InternetAddress 배열을 넣어준다. InternetAddress[] toAddress = new InternetAddress[] { new InternetAddress(to) }; Transport.send(message, toAddress); // send 이렇게 지정 해 주지 않으면 message 의 addRecipient 한 정보로 발송하게 된다. header 에 to 헤더를 빼고 싶거나 바꿔서 넣고 싶은 경우 위와 같이 하면 된다.
GNU Mailutils GNU Mailutils curl curl github 사용법이 간단한편이다. curl 은 보통 http 요청 할 때 많이 사용하는데, curl 을 종종 사용하는 사람들 조차도 smtp 가 된다는 사실에 놀라곤 한다. 문제점 수신자가 여러명일 때 한명이라도 실패 하면 모두 실패한다. 보통 수신자가 여러명일 때 rcpt to 2개 중 1개가 실패 해도 발송이 되어야 되는데 curl 에서는 실패한다. https://github.com/curl/curl/issues/2483 이것은 known issue 이다. 2012년 부터 알려진 이슈이지만 아직 수정 되지 않았다. 짬나면 기여해 봐야 겠다. libquickmail libquickmail curl 을 랩핑 해 둔 라이브러리라고 보면 ..