English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 프로세스 제어

Java 배열

Java 접근형(I)

Java 접근형(II)

Java 접근형(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 셋

Java Set 셋

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 이메일 보내기

Java 애플리케이션을 사용하여 E를 보내세요-mail은 매우 간단하지만, 먼저 JavaMail API와 Java Activation Framework (JAF)을 컴퓨터에 설치해야 합니다.

  • Java 웹사이트에서 최신 버전의 JavaMail웹페이지의 우측에 Downloads 링크를 다운로드하여 클릭하여 다운로드하세요。

  • Java 웹사이트에서 최신 버전의 JAF(버전 1.1.1)

이 웹사이트에서 제공하는 다운로드 링크를 사용할 수도 있습니다:

이 파일들을 다운로드하고 압축을 풀어, 새로 만든 최상위 디렉토리에서 두 개의应用程序의 jar 파일을 찾을 수 있습니다. 이 파일들을 추가해야 합니다: mail.jaractivation.jar 파일을 CLASSPATH에 추가하세요.

QQ SMTP 서버와 같은 제3자 메일 서버를 사용하는 경우, 글 아래의 사용자 인증 예제를 확인할 수 있습니다.

간단한 E를 보내세요-mail

다음은 간단한 E를 보내는 예제입니다-mail 인스턴스. 당신의 로컬 호스트가 네트워크에 연결되어 있다고 가정

// 파일 이름 SendEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendEmail
{
   public static void main(String [] args)
   {   
      // 받는 사람의 이메일 주소
      String to = "[email protected]";
 
      // 보내는 사람의 이메일 주소
      String from = "[email protected]";
 
      // localhost로 주소를 설정한 발신 주소
      String host = "localhost";
 
      // 시스템 속성을 가져옵니다
      Properties properties = System.getProperties();
 
      // 이메일 서버를 설정합니다
      properties.setProperty("mail.smtp.host", host);
 
      // 기본적인 session 객체를 가져옵니다
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // 기본적인 MimeMessage 객체를 생성합니다
         MimeMessage message = new MimeMessage(session);
 
         // Set From: Header field
         Set From: Header field
 
         // message.setFrom(new InternetAddress(from));
         Set To: Header field
                                  message.addRecipient(Message.RecipientType.TO,
 
         // new InternetAddress(to));
         Set Subject: Header field
 
         // message.setSubject("This is the Subject Line!");
         Set message body
 
         // message.setText("This is actual message");
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch(MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

이 프로그램을 컴파일하고 실행하여 간단한 E를 보내세요-mail:

$ java SendEmail
Sent message successfully....

만약 당신이 이메일을 보내고 싶다면-여러 개의 수신자에게 이메일을 보내려면 다음 메서드를 사용하여 여러 개의 수신자 ID를 지정합니다:

void addRecipients(Message.RecipientType type,
                   Address[] addresses)
MessagingException throws

파라미터에 대한 설명은 다음과 같습니다:

  • type:TO, CC 또는 BCC로 설정되어야 합니다. 여기서 CC는 복사보내기, BCC는 비공개 복사보내기입니다. 예를 들어:Message.RecipientType.TO

  • addresses: 이메일 ID의 배열입니다. 지정된 이메일 ID를 사용할 때는 InternetAddress() 메서드를 사용해야 합니다

HTML 이메일을 보내는 방법-mail

아래는 HTML E-mail 인스턴스. 당신의 로컬 호스트가 네트워크에 연결되어 있다고 가정

이전 예제와 유사하지만, setContent() 메서드를 사용하여 두 번째 매개변수 "text/html"를 사용하여 내용을 설정하여 전송할 HTML 내용을 지정

// 파일 이름 SendHTMLEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendHTMLEmail
{
   public static void main(String [] args)
   {
     
      // 받는 사람의 이메일 주소
      String to = "[email protected]";
 
      // 보내는 사람의 이메일 주소
      String from = "[email protected]";
 
      // localhost로 주소를 설정한 발신 주소
      String host = "localhost";
 
      // 시스템 속성을 가져옵니다
      Properties properties = System.getProperties();
 
      // 이메일 서버를 설정합니다
      properties.setProperty("mail.smtp.host", host);
 
      // 기본적인 Session 객체 가져오기
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // 기본적인 MimeMessage 객체 생성
         MimeMessage message = new MimeMessage(session);
 
         // Set From: Header field
         Set From: Header field
 
         // message.setFrom(new InternetAddress(from));
         Set To: Header field
                                  message.addRecipient(Message.RecipientType.TO,
 
         // Set Subject: 헤더 필드
         Set Subject: Header field
 
         // HTML 메시지를 전송하면, html 태그를 삽입할 수 있습니다
         message.setContent("<h1>This is actual message</h1>",
                            "text/html" );
 
         // message.setText("This is actual message");
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch(MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

이 프로그램을 컴파일하고 실행하여 HTML e-mail:

$ java SendHTMLEmail
Sent message successfully....

첨부 파일이 포함된 E-mail

아래는 첨부 파일이 포함된 E-mail 인스턴스. 당신의 로컬 호스트가 네트워크에 연결되어 있다고 가정

// 파일 이름 SendFileEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendFileEmail
{
   public static void main(String [] args)
   {
     
      // 받는 사람의 이메일 주소
      String to = "[email protected]";
 
      // 보내는 사람의 이메일 주소
      String from = "[email protected]";
 
      // localhost로 주소를 설정한 발신 주소
      String host = "localhost";
 
      // 시스템 속성을 가져옵니다
      Properties properties = System.getProperties();
 
      // 이메일 서버를 설정합니다
      properties.setProperty("mail.smtp.host", host);
 
      // 기본적인 Session 객체 가져오기
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // 기본적인 MimeMessage 객체 생성
         MimeMessage message = new MimeMessage(session);
 
         // Set From: Header field
         Set From: Header field
 
         // message.setFrom(new InternetAddress(from));
         Set To: Header field
                                  message.addRecipient(Message.RecipientType.TO,
 
         // Set Subject: 헤더 필드
         Set Subject: Header field
 
         // 메시지 부분 생성
         BodyPart messageBodyPart = new MimeBodyPart();
 
         // 메시지
         messageBodyPart.setText("This is message body");
        
         // 다중 메시지 생성
         Multipart multipart = new MimeMultipart();
 
         // 텍스트 메시지 부분 설정
         multipart.addBodyPart(messageBodyPart);
 
         // 첨부 파일 부분
         messageBodyPart = new MimeBodyPart();
         String filename = "file.txt";
         DataSource source = new FileDataSource(filename);
         messageBodyPart.setDataHandler(new DataHandler(source));
         messageBodyPart.setFileName(filename);
         multipart.addBodyPart(messageBodyPart);
 
         // 전체 메시지를 전송합니다
         message.setContent(multipart);
 
         //   message.setText("This is actual message");
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch(MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

프로그램을 컴파일하고 실행하여 첨부 파일이 있는 이메일을 전송합니다.

$ java SendFileEmail
Sent message successfully....

사용자 인증 부분

사용자 이름과 비밀번호를 제공해야 하는 경우 e-mail 서버를 통해 사용자 인증을 달성하기 위해, 다음 설정을 통해 완료할 수 있습니다:

props.put("mail.smtp.auth", "true");
props.setProperty("mail.user", "myuser");
props.setProperty("mail.password", "mypwd");

e-mail의 다른 전송 메커니즘은 위와 동일합니다.

사용자 이름과 비밀번호가 필요한 이메일 전송 예제:

이 예제는 QQ 이메일 서버를 예로 들어, QQ 이메일 백그라운드에 로그인하여 "설정" => "계정"에서 POP를 활성화해야 합니다3/SMTP 서비스, 다음 그림과 같이 보입니다:

QQ 이메일은 인증 코드를 생성하여 비밀번호를 설정합니다:

Java 코드는 다음과 같습니다:

// 사용자 이름과 비밀번호가 필요한 이메일 전송 예제
//파일 이름 SendEmail2.java
//이 예제는 QQ 이메일을 예로 들어, QQ 백그라운드에서 설정해야 합니다
 
import java.util.Properties;
 
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
public class SendEmail2
{
   public static void main(String [] args)
   {
      // 받는 사람의 이메일 주소
      String to = "[email protected]";
 
      // 보내는 사람의 이메일 주소
      String from = "[email protected]";
 
      // 보내는 이메일의 주소를 smtp.qq.com으로 지정합니다
      String host = "smtp.qq.com";  //QQ 이메일 서버
 
      // 시스템 속성을 가져옵니다
      Properties properties = System.getProperties();
 
      // 이메일 서버를 설정합니다
      properties.setProperty("mail.smtp.host", host);
 
      properties.put("mail.smtp.auth", "true");
      // 기본적인 session 객체를 가져옵니다
      Session session = Session.getDefaultInstance(properties, new Authenticator(){
        public PasswordAuthentication getPasswordAuthentication()
        {
         return new PasswordAuthentication("[email protected]", "qq邮箱授权码"); //보내는 사람의 이메일 사용자 이름, 인증 코드
        }
       });
 
      try{
         // 기본적인 MimeMessage 객체를 생성합니다
         MimeMessage message = new MimeMessage(session);
 
         // Set From: Header field
         Set From: Header field
 
         // message.setFrom(new InternetAddress(from));
         Set To: Header field
                                  message.addRecipient(Message.RecipientType.TO,
 
         // new InternetAddress(to));
         Set Subject: Header field
 
         // message.setSubject("This is the Subject Line!");
         Set message body
 
         // message.setText("This is actual message");
         Transport.send(message);
         System.out.println("message sent successfully....from oldtoolbag.com));
      }catch(MessagingException mex) {
         mex.printStackTrace();
      }
   }
}