Latest web development tutorials

서블릿 이메일

서블릿을 사용하여 전자 메일은 매우 간단 보내기,하지만 우선은JavaMail에 API와 컴퓨터의 자바 활성화 프레임 워크) JAF)를 설치해야합니다.

  • 당신은 자바의 최신 버전을 다운로드 할 수 있습니다 은 JavaMail을 하는 다운로드 링크가 페이지의 오른쪽을 열고 다운로드 그것을 클릭합니다.
  • 당신은 자바의 최신 버전을 다운로드 할 수 있습니다 (버전 1.1.1) JAF를 .

또한 다운로드 링크를 제공하는 사이트를 사용할 수 있습니다 :

다운로드 새로 만든 최상위 디렉토리에있는 파일의 압축을 풀고, 당신은 몇 가지 jar 파일을 두 개의 응용 프로그램을 찾을 수 있습니다. 당신은 당신의 CLASSPATH에mail.jar와 activation.jar을파일을 추가해야합니다.

간단한 이메일 보내기

다음 예는 컴퓨터에서 간단한 전자 메일을 보내주십시오. 이것은 당신의로컬 호스트가 인터넷과 전자 메일 지원에 연결되어 가정합니다.자바 메일 API 패키지 및 JAF 패키지 클래스 경로에있는 모든 jar 파일을 사용할 수 있는지 보장.

// 파일 이름 SendEmail.java
수입 자바 .io *;
수입 java.util의 *;
수입에서 javax.servlet *;
수입부터는 javax.servlet.http *;
수입 javax.mail *;
수입 javax.mail.internet *;
수입 javax.activation의 *;
 
공용 클래스 SendEmail는 HttpServlet을 확장 {
    
  공공 무효의 doGet (HttpServletRequest의 요청,
                    HttpServletResponse를 응답)
            ServletException이 IOException을 던졌습니다
  {
      //받는 사람의 전자 메일 ID
      = "[email protected]"에 문자열;
 
      // 보낸 사람의 전자 메일 ID
      = "[email protected]"에서 문자열;
 
      이제 전자 메일 문자열 호스트를 전송한다고 가정 해 봅시다 // = "localhost"를 로컬 호스트에서;
 
      //) (시스템 등록 정보 속성 속성 =의 System.getProperties을 얻으십시오;
 
      // 메일 서버 properties.setProperty ( "mail.smtp.host", 호스트)를 설정;
 
      // 기본 세션 개체 세션 ​​세션 = Session.getDefaultInstance (속성)을 얻으십시오;
      
      응답 콘텐츠 형식 response.setContentType을 설정 // ( "text / html과; 문자셋 = UTF-8");
      () = response.getWriter을의 PrintWriter;

      {시도
         // MimeMessage의이 MimeMessage의 메시지 = 새로운 MimeMessage의 (세션) 객체의 기본을 만들기;
         헤더의 헤더 필드 : //를에서 설정합니다.
         message.setFrom (()에서 새로운 InternetAddress);
         //로 설정 : 헤더의 헤더 필드.
         message.addRecipient (Message.RecipientType.TO,
                                  ) (에) 새로운 InternetAddress;
         제목을 설정 // : 헤더 필드를
         message.setSubject는 ( "이 제목 줄입니다!");
         // 이제 실제 메시지 message.setText ( "이것은 실제 메시지입니다")를 설정;
         // 메시지 Transport.send (메시지) 보내기;
         문자열 제목 = "이메일";
         문자열 입술 = "는 성공적으로 ... 메시지를 보내";
         문자열 DOCTYPE = "\ n <DOCTYPE html로!>";
         out.println (DOCTYPE +
         "<HTML> \ n"+
         "<머리> <제목>"+ 제목 + "</ 제목> </ head> \ n"+
         "<BODY BGCOLOR = \"#의 f0f0f0 \ "> \ n"+
         "<H1 정렬 = \"센터 \ ">"+ 제목 + "</ H1> \ n"+
         "<P 정렬 = \"센터 \ ">"+ 입술 + "</ p> \ n"+
         "</ BODY> </ HTML>");
      } 캐치 (MessagingException의 MEX) {
         mex.printStackTrace ();
      }
   }
} 

이제 위의 서블릿을 컴파일하고 web.xml 파일에 다음 항목을 만들 수 있습니다 :

....
 <서블릿>
     <서블릿 이름> SendEmail </ 서블릿 이름>
     <서블릿 클래스> SendEmail </ 서블릿 클래스>
 </ 서블릿>
 
 <서블릿 매핑>
     <서블릿 이름> SendEmail </ 서블릿 이름>
     <URL 패턴> / SendEmail </ URL 패턴>
 </ 서블릿 매핑>
....

이제 URL에 http를 방문하여 : // localhost를 : 8080 / SendEmail이 서블릿을 호출합니다. 이 지정된 이메일ID[email protected]으로 이메일을 보내되며, 다음과 같은 응답과 같이 나타납니다 :

전자 메일 보내기

성공적으로 메시지를 보냈 ...

여러받는 사람에게 전자 메일을 보내려면, 여러 전자 메일 ID를 지정하려면 다음 방법을 사용하십시오

무효 addRecipients (Message.RecipientType 유형, 
                   주소 [] 주소)
MessagingException의 던졌습니다

다음은 매개 변수에 대한 설명입니다 :

  • 유형 :이 TO, CC, 또는 BCC로 설정됩니다.여기서, CC 대신에 CC, BCC BCC 대표. 예를Message.RecipientType.TO하십시오.
  • 주소 :이 이메일 ID의 배열이다.전자 메일 ID를 지정하는 경우, 당신은 InternetAddress () 메소드를 사용해야합니다.

HTML 전자 메일 보내기

다음 예는 사용자의 컴퓨터에 HTML 형식의 전자 메일을 보내드립니다. 이것은 당신의로컬 호스트가 인터넷과 전자 메일 지원에 연결되어 가정합니다.자바 메일 API 패키지 및 JAF 패키지 클래스 경로에있는 모든 jar 파일을 사용할 수 있는지 보장.

이 예는 앞의 예와 매우 유사하지만, 여기에 우리가 "text / html과"내용이 매개 변수는 메시지에 포함 된 HTML 콘텐츠를 지정하는 데 사용되는 두 번째 매개 변수를 설정 () 메서드의 setContent를 사용합니다.

이 인스턴스를 사용하여 콘텐츠는 HTML 콘텐츠의 크기에 한정되지 않고 전송할 수있다.

// 파일 이름 SendEmail.java
수입 자바 .io *;
수입 java.util의 *;
수입에서 javax.servlet *;
수입부터는 javax.servlet.http *;
수입 javax.mail *;
수입 javax.mail.internet *;
수입 javax.activation의 *;
 
공용 클래스 SendEmail는 HttpServlet을 확장 {
    
  공공 무효의 doGet (HttpServletRequest의 요청,
                    HttpServletResponse를 응답)
            ServletException이 IOException을 던졌습니다
  {
      //받는 사람의 전자 메일 ID
      = "[email protected]"에 문자열;
 
      // 보낸 사람의 전자 메일 ID
      = "[email protected]"에서 문자열;
 
      이제 전자 메일 문자열 호스트를 전송한다고 가정 해 봅시다 // = "localhost"를 로컬 호스트에서;
 
      //) (시스템 등록 정보 속성 속성 =의 System.getProperties을 얻으십시오;
 
      // 메일 서버 properties.setProperty ( "mail.smtp.host", 호스트)를 설정;
 
      // 기본 세션 개체 세션 ​​세션 = Session.getDefaultInstance (속성)을 얻으십시오;
      
	  응답 콘텐츠 형식 response.setContentType을 설정 // ( "text / html과; 문자셋 = UTF-8");
      () = response.getWriter을의 PrintWriter;

      {시도
         // MimeMessage의이 MimeMessage의 메시지 = 새로운 MimeMessage의 (세션) 객체의 기본을 만들기;
         헤더의 헤더 필드 : //를에서 설정합니다.
         message.setFrom (()에서 새로운 InternetAddress);
         //로 설정 : 헤더의 헤더 필드.
         message.addRecipient (Message.RecipientType.TO,
                                  ) (에) 새로운 InternetAddress;
         제목을 설정 // : 헤더 필드를
         message.setSubject는 ( "이 제목 줄입니다!");

         실제 HTML 메시지 내용의 크기 제한 message.setContent을 (설정 // "<H1>이 실제 메시지 </ H1>입니다"
                            "텍스트 / html로");
         // 메시지 Transport.send (메시지) 보내기;
         문자열 제목 = "이메일";
         문자열 입술 = "는 성공적으로 ... 메시지를 보내";
         문자열 DOCTYPE = "\ n <DOCTYPE html로!>";
         out.println (DOCTYPE +
         "<HTML> \ n"+
         "<머리> <제목>"+ 제목 + "</ 제목> </ head> \ n"+
         "<BODY BGCOLOR = \"#의 f0f0f0 \ "> \ n"+
         "<H1 정렬 = \"센터 \ ">"+ 제목 + "</ H1> \ n"+
         "<P 정렬 = \"센터 \ ">"+ 입술 + "</ p> \ n"+
         "</ BODY> </ HTML>");
      } 캐치 (MessagingException의 MEX) {
         mex.printStackTrace ();
      }
   }
} 

특정 전자 메일 ID에 HTML 메시지를 보내, 컴파일하고 위의 서블릿을 실행합니다.

전자 메일의 첨부 파일을 보내기

다음 예는 수 있습니다 컴퓨터에 첨부 된 전자 메일을 보내주십시오. 이것은 당신의로컬 호스트가 인터넷과 전자 메일 지원에 연결되어 가정합니다.자바 메일 API 패키지 및 JAF 패키지 클래스 경로에있는 모든 jar 파일을 사용할 수 있는지 보장.

// 파일 이름 SendEmail.java
수입 자바 .io *;
수입 java.util의 *;
수입에서 javax.servlet *;
수입부터는 javax.servlet.http *;
수입 javax.mail *;
수입 javax.mail.internet *;
수입 javax.activation의 *;
 
공용 클래스 SendEmail는 HttpServlet을 확장 {
    
  공공 무효의 doGet (HttpServletRequest의 요청,
                    HttpServletResponse를 응답)
            ServletException이 IOException을 던졌습니다
  {
      //받는 사람의 전자 메일 ID
      = "[email protected]"에 문자열;
 
      // 보낸 사람의 전자 메일 ID
      = "[email protected]"에서 문자열;
 
      이제 전자 메일 문자열 호스트를 전송한다고 가정 해 봅시다 // = "localhost"를 로컬 호스트에서;
 
      //) (시스템 등록 정보 속성 속성 =의 System.getProperties을 얻으십시오;
 
      // 메일 서버 properties.setProperty ( "mail.smtp.host", 호스트)를 설정;
 
      // 기본 세션 개체 세션 ​​세션 = Session.getDefaultInstance (속성)을 얻으십시오;
      
	  응답 콘텐츠 형식 response.setContentType을 설정 // ( "text / html과; 문자셋 = UTF-8");
      () = response.getWriter을의 PrintWriter;

       {시도
         // MimeMessage의이 MimeMessage의 메시지 = 새로운 MimeMessage의 (세션) 객체의 기본을 만들기;
 
         헤더의 헤더 필드 : //를에서 설정합니다.
         message.setFrom (()에서 새로운 InternetAddress);
 
         //로 설정 : 헤더의 헤더 필드.
         message.addRecipient (Message.RecipientType.TO,
                                  ) (에) 새로운 InternetAddress;
 
         제목을 설정 // : 헤더 필드를
         message.setSubject는 ( "이 제목 줄입니다!");
 
         // 메시지 부분되는 BodyPart messageBodyPart = 새로운 MimeBodyPart를 ()를 만들기;
 
         // ( "이 메시지 본문입니다") 메시지 messageBodyPart.setText를 입력;
         
         // 여러 부분으로 메시지가 여러 부분 멀티 = 새의 MimeMultipart 만들기 ();
 
         // 설정 텍스트 메시지 부분 multipart.addBodyPart (messageBodyPart);
 
         // 두 번째 부분은 액세서리 messageBodyPart = 새로운 MimeBodyPart를은 ()이다
         문자열 파일 이름 = "file.txt를";
         데이터 소스 소스 = 새로운 FileDataSource에 (파일 이름);
         messageBodyPart.setDataHandler (새의 DataHandler (소스));
         messageBodyPart.setFileName (파일 이름);
         multipart.addBodyPart (messageBodyPart);
 
         // 전체 메시지 부분의 message.setContent 보내기 (다중);
 
         // 메시지 Transport.send (메시지) 보내기;
         문자열 제목 = "이메일";
         문자열 입술 = "는 성공적으로 ... 전자 메일을 보내";
         문자열 DOCTYPE = "\ n <DOCTYPE html로!>";
         out.println (DOCTYPE +
         "<HTML> \ n"+
         "<머리> <제목>"+ 제목 + "</ 제목> </ head> \ n"+
         "<BODY BGCOLOR = \"#의 f0f0f0 \ "> \ n"+
         "<H1 정렬 = \"센터 \ ">"+ 제목 + "</ H1> \ n"+
         "<P 정렬 = \"센터 \ ">"+ 입술 + "</ p> \ n"+
         "</ BODY> </ HTML>");
      } 캐치 (MessagingException의 MEX) {
         mex.printStackTrace ();
      }
   }
} 

특정 전자 메일 ID에 첨부 파일과 함께 메시지를 보내, 컴파일하고 위의 서블릿을 실행합니다.

사용자 인증 부

당신은 전자 메일 서버의 사용자 ID 및 암호 인증을 제공해야하는 경우에는 다음과 같은 속성을 설정할 수 있습니다 :

 props.setProperty ( "mail.user", "참고 MyUser");
 props.setProperty ( "mail.password", "mypwd");

전자 메일 전달기구의 나머지 부분은 상기 설명과 일치한다.