자바 메 일 입문 강좌 메 일 보 내기(3)

자바 메 일 API 에 서 는 자바.mail.Transport 류 를 정의 합 니 다.메 일 전송 작업 을 수행 하 는 데 사 용 됩 니 다.이러한 인 스 턴 스 대상 은 특정한 메 일 전송 프로 토 콜 의 바 텀 실시 디 테 일 을 패키지 합 니 다.응용 프로그램 은 이러한 종류의 방법 을 호출 하면 Message 대상 에 포 장 된 메 일 데 이 터 를 지정 한 SMTP 서버 로 보 낼 수 있 습 니 다.자바 메 일 을 사용 하여 메 일 을 보 낼 때 설 계 된 주요 API 간 의 작업 관 계 는 다음 과 같 습 니 다.

1.Session 대상 에서 특정한 메 일 발송 협 의 를 실현 한 Transport 대상 을 얻는다.
2.Session 대상 을 사용 하여 Message 대상 을 만 들 고 Message 대상 을 호출 하 는 방법 으로 메 일 데 이 터 를 밀봉 합 니 다.
3.지정 한 SMTP 서버 에 연결 하고 Transport 대상 의 메 일 발송 방법 Message 대상 에 포 장 된 메 일 데 이 터 를 호출 합 니 다.
자바 메 일 입문 두 번 째 메 일 생 성 글 에서 우 리 는 메 일 을 만 드 는 것 을 배 웠 습 니 다.그러나 그 당시 에 우 리 는 메 일 을 로 컬 디스크 에 기록 한 다음 에 자바 메 일 API 가 제공 하 는 Transport 류 로 메 일 을 보 냈 습 니 다.

import java.util.Date;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendTextMail {
  public static void main(String[] args) throws Exception {
    String from = "[email protected]";
    String to = "[email protected]";
    String subject = "test";
    String body = "test!!!";
    String smtpHost = "smtp.qq.com";

    Properties props = new Properties();
    props.setProperty("mail.transport.protocol", "smtp"); //      (JavaMail    )
    props.setProperty("mail.smtp.host", smtpHost); //         SMTP     
    props.setProperty("mail.smtp.auth", "true"); //     ,           

    //   Session    
    Session session = Session.getDefaultInstance(props);
    //   MimeMessage    
    MimeMessage message = new MimeMessage(session);
    //      
    message.setFrom(new InternetAddress(from));
    //      
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
    //       
    message.setSentDate(new Date());
    //       
    message.setSubject(subject);
    //             
    message.setText(body);
    //             
    message.saveChanges();
    //    debug  ,           log
    session.setDebug(true);
    //   Transport  
    Transport transport = session.getTransport("smtp");
    //  2         QQ   SMTP    ,      ,       ?
    transport.connect(from, "****************");
    //   ,message.getAllRecipients()                      ,    ,    
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
  }
}
메모:메 일 계 정 은 SMTP 서 비 스 를 켜 야 합 니 다.
내장 자원 이나 첨부 파일 이 있 는 복잡 한 메 일 코드 를 보 내 는 것 은 자바 메 일 입문 두 번 째 메 일 생 성 글 과 유사 하 며,하 드 디스크 에 기록 하 는 절 차 를 위 코드 의 42-47 줄 로 바 꾸 면 된다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기