- JavaMail API를 사용하여 이메일 보내기
- JavaMail API를 사용하여 이메일을 보내는 단계
- 세션 객체 가져오기
- 메시지 작성
- 메시지를 보내다
- JavaMail API를 사용하여 이메일을 보내는 간단한 예
- 호스트 공급자가 제공하는 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 클래스의 일반적으로 사용되는 메소드
아니요. | 방법 | 설명 |
1 | public void setFrom(주소 주소) | from 헤더 필드를 설정하는 데 사용됩니다. |
2 | public 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 | 공개 정적 무효 전송(메시지 메시지) | 메시지를 보내는 데 사용됩니다. |
2 | public static void send(메시지 메시지, 주소[] 주소) | 주어진 주소로 메시지를 보내는 데 사용됩니다. |
메시지를 보내는 예:
Transport.send(message);
Java로 이메일을 보내는 간단한 예
이 예에서는 컴퓨터에 설치된 SMTP 서버를 통해 이메일을 보내는 방법을 배우겠습니다. Postcast 서버, Apache James 서버, Cmail 서버 등 호스트 공급자가 제공하는 SMTP 서버를 사용하여 이메일을 보내려면 다음 예를 참조하세요. |
JavaMail API를 사용하여 이메일을 보내려면 두 개의 jar 파일을 로드해야 합니다.이러한 jar 파일을 다운로드하거나 Oracle 사이트로 이동하여 최신 버전을 다운로드하세요. |
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로 이메일을 보내는 예
호스트 공급자가 제공하는 SMTP 서버를 사용하는 경우 mail.javatpoint.com 에서는 사용자 이름과 비밀번호를 인증해야 합니다. javax.mail.PasswordAuthentication 클래스는 비밀번호를 인증하는 데 사용됩니다. |
JavaMail API를 사용하여 이메일을 보내는 경우 두 개의 jar 파일을 로드합니다.이러한 jar 파일을 다운로드하거나 Oracle 사이트로 이동하여 최신 버전을 다운로드하세요. |
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 |