본문 바로가기

카테고리 없음

javax.mail은 무엇인가 / 왜 사용하는가 / 어떻게 사용하는가 설명하기

javax.mail에 대한 글을 쓰는 이유 

1. 사용자가 이메일을 작성한다 2.  사용자가 이메일을 작성한 후 전송 버튼 누른다 3. 사용자가 전송 버튼을 누르면 사용한 자바 메일 코드를 사용하게 되어 사용자 이메일에 인증코드를 전송하게 된다

  1. 안드로이드에서 사용자가 이메일을 작성한다
  2. 사용자가 이메일을 작성한 후 전송 버튼을 누르게 된다 
  3. 사용자가 전송 버튼을 누르면 사용한 자바 메일 코드를 사용하게 되어 사용자 이메일에 인증코드를 전송하게 된다 
  4. 그런데 어떤 기술을 사용하여 이메일을 전송하게 되는지 모르겠다 
  5. 모르면 안 될 듯해서 javax.mail에 대한 글을 쓰게 된다 
  6. 그래서 안드로이드 메일 전송 코드를 보아하니 javax.mail라는 것을 사용하는 것 같았다 
  7. 그래도 잘 모르겠다 제대로 알기 위해 공부와 정리를 시작해 본다 javax.mail은 무엇인가

javax.mail이 무엇인지 알아보기 위해

 

javax.mail이 무엇인지 알아보기 위해

패키지

import 

javax.mail 무엇인가에 대해 알아볼 것 이다 

 

설명 

어떤 일이나 대상의 내용을 상대편이    있도록 밝혀 말함. 또는 그런 .

 

무엇 

모르는 사실이나 사물을 가리키는 지시 대명사.

 

무슨 까닭으로. 또는 어째서.

 

어떻게 

어떤 방법이나 방식으로

 

 


패키지란 무엇인가 

  • 자바에서 패키지(Package)란 클래스와 인터페이스의 집합 모음이다 
  • 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있다 
  • 패키지를 통해 편리하게 프로젝트를 관리 할 수 있고 서로 구분 가능하다 

 

import 

import 문은 클래스, 인터페이스, 기타 멤버들을 사용하기 위해 필요한 패키지를 현재 파일에 포함시키는 데 사용됩니다

특히 자바와 같은 언어에서 import 문은 클래스, 인터페이스, 기타 멤버들을 사용하기 위해 필요한 패키지를

현재 파일에 포함시키는 데 사용됩니다. 이를 통해 개발자는 이미 작성되어 있는 코드를 재사용할 수 있고,

코드의 가독성과 관리 효율성을 높일 수 있습니다.

 

아래와 같이 선언한 패키지에 속한 클래스를 다른 파일에서 사용하기 위해서는

클래스 이름 앞에 패키지의 경로까지 포함한 풀 네임을 명시해 사용해야 합니다.

 

 import 패키지이름.클래스이름;   --> android.os.Bundle;

 

예를 들어, 자바에서 javax.mail 패키지의 클래스를 사용하기 위해서는

해당 클래스를 현재의 소스 코드 파일에 import 해야 합니다. 예를 들어:

 

import javax.mail.Session;
import javax.mail.MessagingException;

 

이 코드는 Session과 MessagingException 클래스를 javax.mail 패키지로부터 현재 파일로 가져옵니다.

이렇게 함으로써, 개발자는 Session이나 MessagingException을 직접 정의하지 않고도 이들을 사용할 수 있게 됩니다.

import 문은 코드의 재사용성을 높이고, 필요한 기능을 빠르게 통합할 수 있게 해주는 중요한 기능입니다.

 

 

하지만 클래스를 사용할 때마다 매번 이렇게 긴 이름을 사용하는 것은 비효율적이므로,

자바에서는 import 키워드를 별도로 제공하고 있습니다.

import 문은 자바 컴파일러에 코드에서 사용할 클래스의 패키지에 대한 정보를 미리 제공하는 역할을 합니다.

 

패키지 이름에는 패키지의 경로까지 포함한 풀 네임을 명시해야 합니다.

첫 번째 방법은 해당 패키지의 특정 클래스만을 사용하고자 할 때 사용합니다.

두 번째 방법은 해당 패키지의 모든 클래스를 클래스 이름만으로 사용하고 싶을 때 사용합니다.

 

임포트 키워드로 패키지를 불러오면 다른패키지에 있는 클래스들을 사용할 수 있다.


 

 

javax.mail은 무엇인가

javax.mail이란 말이 따로 있는지는 모르겠다 

그런데 찾아보니 JavaMail API라는게 나온다 

JavaMail API에 대해 정리해 보아야 겠다 

JavaMail API란 무엇인가 

JavaMail API는 메일 시스템을 모델링하는 추상 API 세트입니다.

API는 Java 기술 기반 이메일 클라이언트 애플리케이션을 구축하기 위한 플랫폼이며 독립적인 프레임워크를 제공합니다. 

JavaMail API는 이메일을 읽고 보내는 기능을 제공합니다. 서비스 공급자는 특정 프로토콜을 구현합니다. 

JavaMail API 패키지에는 여러 서비스 제공자가 포함되어 있습니다. 다른 것들은 별도로 이용 가능합니다.

 

기존에 자바에서 메일과 관련된 프레임워크를 개발하기 위해서 개발자들은 스스로 전체적인 메일 시스템을 설계하고 구현해야만 했다. 하지만, Java Mail API가 발표되면서, 개발자들은 메일 시스템의 프레임워크를 설계하는 데 고민할 필요가 없어졌으며, 또한 Java Mail API와 함께 제공되는 클래스들(SMTP, POP3, IMAP을 구현하였다)을 사용하여

매우 손쉽게 메일을 주고 받는 시스템을 구축할 수 있게 되었다.

 

Java Mail API의 주요 목적은 개발자들이 손쉽게 어플리케이션의 메일 기능을 추가하고 또한 정교한 사용자 인터페이스를 생성할 수 있도록 하는 것이다. Java Mail API는 Message, Transport, Session과 같이 메일의 공통적인 기능과 프로토콜을 추상화한 클래스를 포함하고 있으며, 또한 자바 기반이기 때문에 자바 플랫폼에서 제공하는 다양한 API를 사용할 수 있다. 다음 그림은 Java Mail API의 전체적인 구조를 보여주고 있다.


위 그림을 보면 가장 상위에 메일 시스템을 사용하는 어플리케이션 위치하는 것을 알 수 있다. 이 어플리케이션은 Java Mail의 추상 클래스를 통해서 실제 구현 클래스 계층에 접근하게 된다. 구현 클래스 계층은 하부에 있는 실제 이메일 시스템 구현 계층과 상호작용한다.메일의 컨텐츠와 관련된 데이터는 JAF(JavaBean Activation Framework)를 사용하여 표현할 수 있다. 일반적으로 Java Mail API를 사용하는 어플리케이션은 다양한 포맷을 제공하기 위해 JAF를 통해 메일 메시지의 컨텐츠를 생성한다.

import javax.activation.DataHandler;

 

import javax.activation.DataSource;

 

import javax.mail.Message;

 

import javax.mail.PasswordAuthentication;

 

import javax.mail.Session;

 

import javax.mail.Transport;

 

import javax.mail.internet.InternetAddress;

 

import javax.mail.internet.MimeMessage;

 

 

 

3개의 jar은 무엇인가

 

 

JavaMail API란 무엇입니까?