자카르 메일
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]
자카르타 메일 소스 코드의 대부분은 다음과 같은 라이센스에 따라 라이센스가 부여된다.
예
수입하다 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"; } } } //수업종료
참조
- ^ "JavaEE inclusion". Retrieved 12 Nov 2014.
- ^ ""News"". Retrieved 13 May 2020.
- ^ "Jakarta Mail". Retrieved 3 Sep 2019.