자카르 메일

Jakarta Mail

자카르타 메일(Jakarta Mail)은 SMTP, POP3, IMAP 등을 통해 이메일을 주고받을 때 사용되는 자카르타 EE API로, 자카르 메일은 자바 EE 플랫폼에 내장되어 있지만, 자바 SE에서 사용하기 위한 선택적 패키지도 제공한다.[1]

현재 버전은 2020년 3월에 발매된 1.6.5이다.[2]자카르타 메일의 다른 오픈 소스인 GNU JavaMail은 JavaMail 규격의 버전 1.3만 지원하면서도 유일한 무료 NNTP 백엔드를 제공하므로 이 기술을 사용하여 뉴스 그룹 기사를 읽고 보낼 수 있다.

2019년 현재 이 소프트웨어는 자카르타 메일(Jakarta Mail)으로 알려져 있으며 자카르타 EE 브랜드(옛 자바 EE)의 일부분이다.

라이센싱

자카르타 메일은 Eclipse.org에서 새로운 이름으로 오픈소스 프로젝트주최된다.[3]

자카르타 메일 소스 코드의 대부분은 다음과 같은 라이센스에 따라 라이센스가 부여된다.

  • EPL-2.0
  • 클래스 경로 예외 라이센스가 있는 GPL-2.0
  • 데모 프로그램의 소스 코드는 BSD 라이센스에 따라 라이센스가 부여됨

수입하다 java.util.*; 수입하다 javax.mail.*; 수입하다 havax.mail.인터넷.*; 수입하다 자바스의*;  // 간단한 단일 부품, 텍스트/플레인 이메일 보내기 공중의 계급 테스트이메일 {      공중의 정태의 공허하게 하다 본래의([] 아그) {          // 여기서 이메일 주소를 대체하십시오!           = "sendToMailAddress";          로부터 = "SendFromMailAddress";         // ISP의 메일 서버를 대체하십시오!          사회를 보다 = "smtp.yourisp.invalid";          // 속성 만들기, 세션 가져오기         특성. 소품 = 새로운 특성.();          // 정적 Transport.send()를 사용하는 경우,         // 보낼 호스트를 지정해야 함         소품.놓다("mail.reason.host", 사회를 보다);         // 현장 뒤에서 무슨 일이 벌어지는지 보기 위해         소품.놓다("mail.properties", "진짜");         세션 세션 = 세션.getInstance(소품);          해보다 {             // 메시지 인스턴스화             메시지 음스그 = 새로운 MimeMessage(세션);              //메시지 속성 설정             음스그.setFrom(새로운 인터넷 주소(로부터));             인터넷 주소[] 주소를 쓰다 = {새로운 인터넷 주소()};             음스그.setRecipients(메시지.받는사람유형., 주소를 쓰다);             음스그.setSubject("Java를 통해 전자 메일 테스트");             음스그.setSentDate(새로운 날짜());              // 메시지 내용 설정             음스그.setText("이것은 "을 보내는 시험이다. +                         "자바를 통해 문자메일을 전송한다.\n" +                         "여기 2호선이 있다.");              //메시지 보내기             운송.보내다(음스그);         }         잡히다 (MessagingException 멕스) {             // 모든 중첩(체인식) 예외도 인쇄             멕스.printStackTrace();         }     } }//수업종료 

멀티파트 전자우편, HTML 전자우편 및 첨부파일을 보내는 샘플 코드

수입하다 java.util.*; 수입하다 java.io.*; 수입하다 javax.mail.*; 수입하다 havax.mail.인터넷.*; 수입하다 자바스의*;  공중의 계급 SendMailUsage {      공중의 정태의 공허하게 하다 본래의([] 아그) {          // 여기서 이메일 주소를 대체하십시오!!!           = "sendToMailAddress";          로부터 = "SendFromMailAddress";         // ISP의 메일 서버를 대체하십시오!!!          사회를 보다 = "암호 서버.usisp.usp.";          // 세션에 대한 속성 생성         특성. 소품 = 새로운 특성.();          // 정적 Transport.send()를 사용하는 경우,         // 여기서 메일 서버를 지정해야 함         소품.놓다("mail.reason.host", 사회를 보다);         // 현장 뒤에서 무슨 일이 벌어지는지 보기 위해         소품.놓다("mail.properties", "진짜");          // 세션 가져오기         세션 세션 = 세션.getInstance(소품);          해보다 {             // 전자 메일을 보낼 Transport 개체 가져오기             운송 버스 = 세션.getTransport("smtp");              // 여기서 한 번만 연결             // Transport.send() 각 전송 후 연결 끊김             // 일반적으로 SMTP에는 사용자 이름과 암호가 필요하지 않음             버스.연결하다();             //bus.connectorprover.yourisp.net", "암호", "암호";              // 메시지 인스턴스화             메시지 음스그 = 새로운 MimeMessage(세션);              //메시지 속성 설정             음스그.setFrom(새로운 인터넷 주소(로부터));             인터넷 주소[] 주소를 쓰다 = {새로운 인터넷 주소()};             음스그.setRecipients(메시지.받는사람유형., 주소를 쓰다);             // 쉼표로 구분된 이메일 주소 목록을 구문 분석하십시오.엄하다.             음스그.setRecipients(메시지.받는사람유형.CC,                                 인터넷 주소.파스를 치다(, 진실의));             // 쉼표/공간 구분 목록을 구문 분석하십시오.좀 느슨하게 해라.             음스그.setRecipients(메시지.받는사람유형.BCC,                                 인터넷 주소.파스를 치다(, 거짓의));              음스그.setSubject("Java를 통해 전자 메일 테스트");             음스그.setSentDate(새로운 날짜());              // 메시지 내용 설정 및 전송             setTextContent(음스그);             음스그.세이브체인지스();             버스.sendMessage(음스그, 주소를 쓰다);              setMultipartContent(음스그);             음스그.세이브체인지스();             버스.sendMessage(음스그, 주소를 쓰다);              setFileAsAttachments(음스그, "C:/Windows/CLOAD.GIF");             음스그.세이브체인지스();             버스.sendMessage(음스그, 주소를 쓰다);              setHTMLContent(음스그);             음스그.세이브체인지스();             버스.sendMessage(음스그, 주소를 쓰다);              버스.가까운.();          }         잡히다 (MessagingException 멕스) {             // 모든 중첩(체인식) 예외도 인쇄             멕스.printStackTrace();             // 중첩된 예외에 액세스하는 방법             하는 동안에 (멕스.getNextException() != 무효의) {                 // 체인에서 다음 예외 가져오기                 예외 이외의 = 멕스.getNextException();                 이외의.printStackTrace();                 만일 (!(이외의 의 예. MessagingException)) 부숴뜨리다;                 , 그 밖의 멕스 = (MessagingException)이외의;             }         }     }      // 간단한 단일 부품 텍스트/플레인 이메일.     공중의 정태의 공허하게 하다 setTextContent(메시지 음스그) 던지다 MessagingException {             // 메시지 내용 설정              mytxt = "이것은 "을 보내는 시험이다. +                             "자바를 통해 문자메일을 전송한다.\n" +                             "여기 2호선이 있다.";             음스그.setText(mytxt);              // 대체 양식             음스그.setContent(mytxt, "텍스트/텍스트");      }      // 간단한 멀티파트/혼합 이메일.두 신체 부위는 모두 텍스트/플레인이다.     공중의 정태의 공허하게 하다 setMultipartContent(메시지 음스그) 던지다 MessagingException {         // 첫 번째 부분 작성 및 채우기         MIMEBodyPart p1 = 새로운 MIMEBodyPart();         p1.setText("이것은 테스트 멀티파트 이메일의 일부분이다.");          // 두 번째 부분 작성 및 채우기         MIMEBodyPart p2 = 새로운 MIMEBodyPart();         // 텍스트 콘텐츠에 문자 집합을 설정하는 방법         p2.setText("이것이 제2부", "us-ascII");          // 멀티파트를 생성하십시오.여기에 BodyParts를 추가하십시오.         멀티파트 mp = 새로운 마임멀티파르트();         mp.addBodyPart(p1);         mp.addBodyPart(p2);          // 메시지 내용으로 멀티파트 설정         음스그.setContent(mp);     }      // 파일을 첨부 파일로 설정하십시오.JAF FileDataSource 사용.     공중의 정태의 공허하게 하다 setFileAsAttachments(메시지 음스그,  파일 이름)              던지다 MessagingException {          // 첫 번째 부분 작성 및 채우기         MIMEBodyPart p1 = 새로운 MIMEBodyPart();         p1.setText("이것은 테스트 멀티파트 이메일의 일부분이다." +                     "두 번째 부분은 첨부파일");          // 두 번째 부분 생성         MIMEBodyPart p2 = 새로운 MIMEBodyPart();          // 두 번째 파트에 파일 넣기         파일데이터소스 Fds. = 새로운 파일데이터소스(파일 이름);         p2.setDataHandler(새로운 데이터핸들러(Fds.));         p2.setFileName(Fds..getName());          // 멀티파트를 생성하십시오.여기에 BodyParts를 추가하십시오.         멀티파트 mp = 새로운 마임멀티파르트();         mp.addBodyPart(p1);         mp.addBodyPart(p2);          // 메시지 내용으로 멀티파트 설정         음스그.setContent(mp);     }      // 단일 파트 HTML 콘텐츠를 설정하십시오.     // 모든 유형의 데이터 전송은 유사하다.     공중의 정태의 공허하게 하다 setHTMLContent(메시지 음스그) 던지다 MessagingException {           html = "[머리에] +                         음스그.getSubject() +                         "[/그럴까]" +                         음스그.getSubject() +                         "HTML 전자우편 보내기 테스트" +                         " 자바를 통해.</몸>";          // HTMLDataSource는 정적 중첩 클래스임         음스그.setDataHandler(새로운 데이터핸들러(새로운 HTMLData 소스(html)));     }      /* * HTML 전자 메일 콘텐츠를 전송하는 JAF 데이터 원본 역할을 하는 정적 중첩 클래스 */     정태의 계급 HTMLData 소스 기구들 데이터 원본 {         사유의  html;          공중의 HTMLData 소스( htmlString) {             html = htmlString;         }          // InputStream에서 html 문자열을 반환하십시오.         // 매번 새로운 스트림을 반환해야 한다.         공중의 입력스트림 getInputStream() 던지다 IOException {             만일 (html == 무효의) 던지다 새로운 IOException("Null HTML");             돌아오다 새로운 ByteArrayInputStream(html.겟바이트());         }          공중의 출력스트림 getOutputStream() 던지다 IOException {             던지다 새로운 IOException("이 DataHandler는 HTML을 쓸 수 없음");         }          공중의  getContent유형() {             돌아오다 "텍스트/텍스트";         }          공중의  getName() {             돌아오다 "JAF text/html dataSource to send e-mail";         }     }  } //수업종료 

참조

  1. ^ "JavaEE inclusion". Retrieved 12 Nov 2014.
  2. ^ ""News"". Retrieved 13 May 2020.
  3. ^ "Jakarta Mail". Retrieved 3 Sep 2019.

외부 링크