본문 바로가기

닷컴's_열공/JAVA

메일전송 프로그램

sun.net.smtp 패키지
  • 전자메일의 송신기능 지원
SmtpClient
  • e-mail을 보낼 수 있도록 해줌
  • 사용자는 작절한 제목으로 메시지를 만들어내고, 보낼 주소를 적어주고, 보내는 사람의 주소도 적어주며, 사용하는 SMTP 서버의 이름을 명기해야 한다.
  • SMTP(Simple Mail Transfer Protocol) - 인터넷 상에서 기계의 메시지 전송에 관련된 프로토콜
[예제]
 
From : ymyong94@hanmail.net
To : ymyong@nownuri.net
Title : "This is the test."
Message : "Hello there!"

  먼저, SmtpClient() 생성자를 사용하여 SMTP 서버의 이름으로 초기화된 새로운 SmtpClient 객체를 생성한다. 그 다음에 from() 메소드로 보내는 사람의 e-mail 주소를 설정한다. 다음으로, to() 메소드로 받는 사람의 주소를 설정한다. 그 다음에, startMessage() 메소드로 PrintStream 객체를 얻게 된다. 모든 추가적인 머리말이나, 공백 라인, 그리고 메시지 본문은 이 PrintStream으로 출력된다. 마지막으로, 메시지를 마무리하고, closeServer() 메소드로 연결을 끊게 된다.

[HelloMail.java]
		
import java.io.*;
import sun.net.smtp.*;

public class HelloMail {
  public static void main(String argv[]) {
    try {
      //e-mail을 보낼 SMTP 서버 명시
       SmtpClient sc = new SmtpClient("mail.nownuri.net");
			
      //보내는 메일 주소와 받는 메일 주소
       sc.from("yangyumin@hanmail.net");
      sc.to("ymyong@nownuri.net");
			
      //제목을 포함한 헤더정보
       PrintStream ps = sc.startMessage();
      ps.println("Subject: This is a test");
			
      //제목과 본문을 구별하기 위해 한줄 띄움
       ps.println();
			
      //메시지
       ps.println("Hello there!");
      sc.closeServer();
    }
    catch (IOException ioe) {
      ioe.printStackTrace();
    }
  }
}


SmtpClient 클래스를 사용하여 전자메일을 보내는 8단계
  1. SmtpClient() 생성자로 새로운 SmtpClient객체를 생성한다. 인수로 SMTP 서버의 이름을 전달한다.
  2. to() 메소드로 To: 필드에 들어갈 메시지 헤더를 설정한다.
  3. from() 메소드로 From: 필드를 설정한다.
  4. startMessage() 메소드로 나머지 메시지를 보내는데 사용할 PrintStream 객체를 얻는다.
  5. Title: 과 같은 운하는 헤더(머리말)을 출력한다.
  6. 본문과 주제를 구분하는 공백라인을 출력한다.
  7. 메시지 본문을 출력한다.
  8. closeServer() 메소드로 연결을 끊는다.
메일 클라이언트 어플리케이션 (MailClient_Application.java)
보내는 메일서버(SMTP)를 입력하고, 받는 사람, 보내는 사람의 전자우편 주소, 제목과 메시지를 입력하고 버튼을 누르면 메일이 보내진다.