오늘날, 이메일은 우리 삶에서 점점 더 중요한 역할을하며, 우리 각자는이를 다룰 것입니다 (적어도 때때로 우리는 설명 할 수없는 스팸을받습니다). 직장에서 전자 메일을 사용하여 의사 소통을하면 작업을 추적하고 공식화 할 수 있습니다. 이것은 수동으로 우리가 작동합니다. 인생에서 웹 사이트에 계정을 등록한 후 웹 사이트는 자동으로 환영 이메일을 보내고 악의적 인 등록을 방지하기 위해 등록할지 여부를 확인하도록 요청합니다. 물론 이것은 우리가 일하는 것처럼 수동으로 작동하는 것이 불가능합니다. JavaMail 13 개의 핵심 기술로 구성된 Java는 이메일과 관련하여 API를 제공합니다.
1. 메일 서버
인터넷에서 이메일 기능을 제공하려면 전용 이메일 서버를 사용할 수 있어야합니다. 많은 수의 전자 메일 서버가 인터넷에서 설정됩니다. 예를 들어, sina.com, qq.com, 163.com과 같은 웹 사이트는 일반인을위한 무료 이메일 서버를 제공하며 많은 회사는 내부 직원을위한 이메일 서버를 제공하여 서로에게 이메일을 보내고받을 수 있습니다. 그렇다면 메일 서버의 기능은 무엇입니까? 이메일을 보내고 이메일을 받고 메일 픽업 서비스를 제공하는 데 도움이 될 수 있습니다. 이것은 실생활의 우체국과 유사합니다. 이메일을받을 수있을뿐만 아니라 이메일을받을 수있는 서비스를 제공하고 이메일을 보내는 데 도움이됩니다. 다음 그림은 메일 서버의 기능을 생생하게 설명합니다.
(1) 사용자가 제공 한 메일을받습니다.
(2) 사용자가 보낸 이메일을 대상 메일 서버로 전달합니다.
(3) 다른 메일 서버가 전달한 이메일을 받고 관리가 관리하는 사용자의 사서함에 이메일을 저장합니다.
(4) 이메일을 읽는 사용자에게 읽기 서비스를 제공합니다.
통신 프로토콜에 따라 SMTP 서버 및 POP3/IMAP 서버에 따라 메일 서버를 두 가지 유형으로 나눌 수 있습니다. 위 그림의 함수 1, 2 및 3은 SMTP 서버에 의해 완료되며 함수 4는 POP3 서버에 의해 완료됩니다.
2. 이메일
각 이메일 서버에서 여러 이메일 주소를 열 수 있습니다. 이메일 주소를 이메일 주소라고도합니다. 실생활의 우편 주소와 유사합니다. 사용자는이 주소를 통해 다른 사람으로부터 이메일을 받고 다른 사람에게 이메일을 보낼 수 있습니다. 이메일을 얻으려면 메일 서버에 신청해야합니다. 정확히 말하면, 이메일은 실제로 사용자가 메일 서버에서 적용하는 계정입니다. 메일 서버는 특정 계정에 할당 된 사서함 공간에 수신 된 메일을 저장합니다 (따라서 정기적으로 메일을 정리해야합니다. 그렇지 않으면 할당 된 공간이 할당 된 공간을 초과하면 새 메일을받을 수 없습니다). 사용자는 메일 서버에 로그인하여 요청한 사용자 이름과 비밀번호를 통해 주소에서받은 이메일 메시지를 확인합니다.
3. 이메일의 전송 과정
이메일의 전송 프로세스는 다음 그림으로 표시 될 수 있습니다.
위 그림의 실선 프로세스 설명 :
1. [email protected]의 메일 클라이언트가 Sina의 SMTP 서버와 네트워크 연결을 설정 한 후 Lisi의 사용자 이름 및 비밀번호로 로그인하고 SMTP 프로토콜을 사용하여 이메일을 Sina의 SMTP 서버로 전송합니다.
2. [email protected]이 제출 한 주소 이메일을받은 후 Sina의 SMTP 서버는 먼저 수신자의 이메일 주소가 수신자의 주소 접미사를 기반으로 SMTP 서버의 관할 구역에 속하는지 여부를 결정합니다. 그렇다면 메일은 수신자의 이메일 주소에 직접 저장됩니다. 그렇지 않으면 SINA의 SMTP 서버는 수신자의 이메일 주소 (SOHU.com)의 접미사로 표시된 도메인 이름의 MX 레코드에 대한 DNS 서버를 SOHU의 SMTP 서버 정보를 얻은 다음 SOHO의 SMTP 서버와 연결하여 SMTP 프로토콜을 사용하여 SOHU의 SMTP 서버로 전송합니다.
3. Soho의 SMTP 서버가 Sina의 SMTP 서버로부터 이메일을 수신 한 후에도 이메일이 수신자 주소를 기반으로 SMTP 서버의 관할 구역 내에 있는지 여부도 결정합니다. 그렇다면 이메일을 수신자의 사서함에 직접 저장하십시오. 그렇지 않으면 Sohu의 SMTP 서버는 이메일을 계속 전달할 수 있습니다.
4. [email protected] 계정은 클라이언트를 통해 Soho의 POP3/IMAP 서버와 네트워크 연결을 설정 한 다음 성공적으로 로그인 한 후 POP3/IMAP 프로토콜을 통해 [email protected] 이메일에 새 이메일이 있는지 확인합니다. 그렇다면 POP3 또는 IMAP 프로토콜을 사용하여 사서함에서 이메일을 읽으십시오.
점선 공정은 실선 공정과 유사하며 더 이상 반복되지 않습니다.
Javamail API는 Java 개발자가 응용 프로그램에서 솔리드 라인 메일을 보내고 받도록하기 위해 Sun이 채택한 표준 개발 패키지입니다. SMTP, POP3, IMAP 및 MIME와 같은 일반적으로 사용되는 메일 프로토콜을 지원합니다. 물론이 API를 사용하려면 먼저 관련 JAR 패키지를 다운로드해야합니다. 최신 버전은 1.5.6, 다운로드 주소 : https://java.net/projects/javamail/pages/home입니다.
Javamail API는 일반적으로 기능에 따라 다음 세 가지 범주로 나눌 수 있습니다.
1. 전자 메일 콘텐츠를 작성하고 구문 분석하기위한 API : 메시지 클래스는 이메일 생성 및 구문 분석의 핵심 API이며 인스턴스 객체는 이메일을 나타냅니다.
2. 이메일 전송을위한 API : 전송 클래스는 이메일을 보내는 핵심 API 클래스입니다. 인스턴스 객체는 SMTP 프로토콜과 같은 특정 이메일 전송 프로토콜을 구현하는 메일 전송 객체를 나타냅니다.
3. 이메일 수신에 대한 API : 상점 클래스는 이메일 수신을위한 핵심 API 클래스입니다. 인스턴스 객체는 POP3 프로토콜과 같은 특정 이메일 수신 프로토콜을 구현하는 이메일 수신 객체를 나타냅니다.
세션 클래스 :
세션 클래스는 전체 애플리케이션에서 요구하는 환경 정보를 정의하는 데 사용될뿐만 아니라 클라이언트가 호스트 이름, 포트 번호 및 사용 된 메일 보내기 및 수신 프로토콜과 같은 메일 서버와 네트워크 연결을 설정할 수 있도록 클라이언트가 세션 정보를 수집하는 데 사용됩니다. 세션 객체는이 정보를 기반으로 메일 전송 및 수신을위한 전송 및 저장 개체를 구축하고 클라이언트를위한 메시지 객체를 만들 때 정보 지원을 제공합니다.
위의 4 개의 클래스의 관계는 다음과 같습니다.
위의 내용의 대부분은 "Java Mail 개발에 대한 자세한 설명"이라는 책에서 발췌됩니다. Javamail의 다음 기사 beginner 두 번째 기사 작성 이메일은 Javamail에서 제공 한 API를 사용하여 이메일을 만드는 방법을 소개합니다.