logo

Java로 이메일 보내기

  1. JavaMail API를 사용하여 이메일 보내기
  2. JavaMail API를 사용하여 이메일을 보내는 단계
    1. 세션 객체 가져오기
    2. 메시지 작성
    3. 메시지를 보내다
  3. JavaMail API를 사용하여 이메일을 보내는 간단한 예
  4. 호스트 공급자가 제공하는 SMTP 서버를 통해 JavaMail API를 사용하여 이메일을 보내는 예

JavaMail API를 사용하여 이메일을 보내는 방법에는 여러 가지가 있습니다. 이를 위해서는 메일 발송을 담당하는 SMTP 서버가 있어야 합니다.

다음 기술 중 하나를 사용하여 SMTP 서버를 가져올 수 있습니다.

  • Postcast 서버, Apache James 서버, cmail 서버 등과 같은 SMTP 서버를 설치하고 사용합니다.
  • 호스트 공급자가 제공하는 SMTP 서버를 사용하세요. 내 SMTP 서버는 mail.javatpoint.com입니다.
  • 타사에서 제공하는 SMTP 서버를 사용하세요. 지메일 등

여기서는 javamail API를 사용하여 이메일을 보내는 위의 세 가지 접근 방식에 대해 알아보겠습니다. 하지만 우리는 자바 애플리케이션에서 이메일을 보내는 기본 단계를 배워야 합니다.


JavaMail API를 사용하여 이메일을 보내는 단계

JavaMail을 사용하여 이메일을 보내려면 다음 세 단계를 따르세요. 그것들은 다음과 같습니다:

    세션 개체 가져오기호스트 이름, 사용자 이름, 비밀번호 등과 같은 호스트의 모든 정보를 저장합니다.메시지를 작성하세요 메시지를 보내다


1) 세션 객체를 가져옵니다

그만큼 javax.mail.Session 클래스 세션 객체를 가져오는 두 가지 메서드인 Session.getDefaultInstance() 메서드와 Session.getInstance() 메서드를 제공합니다. 세션 개체를 가져오는 데는 어떤 방법이든 사용할 수 있습니다.

세션 클래스의 방법

아니요.방법설명
1공개 정적 세션 getDefaultInstance(속성 소품)기본 세션을 반환합니다.
2공개 정적 세션 getDefaultInstance(속성 소품, 인증자 인증)기본 세션을 반환합니다.
공개 정적 세션 getInstance(속성 소품)새 세션을 반환합니다.
4공개 정적 세션 getInstance(속성 소품, 인증자 인증)새 세션을 반환합니다.

getDefaultInstance() 메소드의 예

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

getInstance() 메소드의 예

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) 메시지 작성

javax.mail.Message 클래스는 메시지를 작성하는 메소드를 제공합니다. 그러나 추상 클래스이므로 하위 클래스인 javax.mail.internet.MimeMessage 클래스가 주로 사용됩니다.
메시지를 생성하려면 MimeMessage 클래스 생성자에 세션 객체를 전달해야 합니다. 예를 들어:
 MimeMessage message=new MimeMessage(session); 
이제 메시지 개체가 생성되었지만 이 개체에 정보를 저장하기 위해 MimeMessage 클래스는 다양한 메서드를 제공합니다. MimeMessage 클래스에서 제공하는 메서드를 살펴보겠습니다.

MimeMessage 클래스의 일반적으로 사용되는 메소드

아니요.방법설명
1public void setFrom(주소 주소)from 헤더 필드를 설정하는 데 사용됩니다.
2public void addRecipient(Message.RecipientType 유형, 주소 주소)지정된 주소를 수신자 유형에 추가하는 데 사용됩니다.
공개 무효 addRecipients(Message.RecipientType 유형, 주소[] 주소)지정된 주소를 수신자 유형에 추가하는 데 사용됩니다.
4공공 무효 setSubject(문자열 주제)제목 헤더 필드를 설정하는 데 사용됩니다.
5공개 무효 setText(문자열 텍스트 메시지)text/plain MIME 유형을 사용하여 텍스트를 메시지 내용으로 설정하는 데 사용됩니다.
6공개 무효 setContent(Object msg, String contentType)주어진 MIME 유형을 사용하여 내용을 메시지 내용으로 설정하는 데 사용됩니다.

메시지 작성 예:

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) 메시지 보내기

javax.mail.Transport 클래스는 메시지를 보내는 방법을 제공합니다.

Transport 클래스의 일반적으로 사용되는 메소드

아니요.방법설명
1공개 정적 무효 전송(메시지 메시지)메시지를 보내는 데 사용됩니다.
2public static void send(메시지 메시지, 주소[] 주소)주어진 주소로 메시지를 보내는 데 사용됩니다.

메시지를 보내는 예:

 Transport.send(message); 

Java로 이메일을 보내는 간단한 예

이러한 jar 파일을 다운로드하거나 Oracle 사이트로 이동하여 최신 버전을 다운로드하세요.
이 예에서는 컴퓨터에 설치된 SMTP 서버를 통해 이메일을 보내는 방법을 배우겠습니다. Postcast 서버, Apache James 서버, Cmail 서버 등 호스트 공급자가 제공하는 SMTP 서버를 사용하여 이메일을 보내려면 다음 예를 참조하세요.
JavaMail API를 사용하여 이메일을 보내려면 두 개의 jar 파일을 로드해야 합니다.
메일.jar
활성화.jar
 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]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
이메일을 보내려면 이 예제를 다운로드하세요

이 예에서는 컴퓨터에 설치된 SMTP 서버를 통해 이메일을 보내는 방법을 배우겠습니다. Postcast 서버, Apache James 서버, Cmail 서버 등 호스트 공급자가 제공하는 SMTP 서버를 사용하여 이메일을 보내려면 다음 예를 참조하세요.

자바에서 문자열을 정수로

이 예제를 실행하려면 두 개의 jar 파일을 로드해야 합니다. jar 파일을 로드하는 방법에는 4가지가 있습니다. 그 중 하나는 클래스 경로를 설정하는 것입니다. 이 예제를 실행하는 방법을 살펴보겠습니다.

jar 파일 로드c:> 클래스 경로 설정=mail.jar;activation.jar;.;
소스 파일을 컴파일c:> javac SendEmail.java
에 의해 실행c:> 자바 보내기이메일

호스트 공급자가 제공하는 SMTP 서버를 통해 Java로 이메일을 보내는 예

이러한 jar 파일을 다운로드하거나 Oracle 사이트로 이동하여 최신 버전을 다운로드하세요.
호스트 공급자가 제공하는 SMTP 서버를 사용하는 경우 mail.javatpoint.com 에서는 사용자 이름과 비밀번호를 인증해야 합니다. javax.mail.PasswordAuthentication 클래스는 비밀번호를 인증하는 데 사용됩니다.
JavaMail API를 사용하여 이메일을 보내는 경우 두 개의 jar 파일을 로드합니다.
메일.jar
활성화.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
이메일을 보내려면 이 예제를 다운로드하세요

위의 예에서 볼 수 있듯이 사용자 ID와 비밀번호에 대한 인증이 필요합니다. 이 프로그램에서 알 수 있듯이 이메일을 쉽게 보낼 수 있습니다. 이에 따라 사용자 이름과 비밀번호를 변경하십시오. 간단한 기술로 다시 한 번 실행하는 방법을 살펴보겠습니다.

jar 파일 로드c:> 클래스 경로 설정=mail.jar;activation.jar;.;
소스 파일을 컴파일c:> javac SendMailBySite.java
에 의해 실행c:> 자바 SendMailBySite