J2EE 애플리케이션이 JavaMail과 함께 메일 자원을 사용할 수 있도록 설정

Java™ EE(Java Platform, Enterprise Edition) 애플리케이션이 JavaMail API와 함께 메일 자원을 사용할 수 있도록 설정할 수 있습니다.

시작하기 전에

코드 세그먼트는 JavaMail API를 사용하여 모든 Java EE 애플리케이션 컴포넌트(예: EJB 또는 서블릿)에 임베드될 수 있습니다. 그에 따라 애플리케이션은 메시지를 전송하고 전송 폴더에 메일 사본을 저장할 수 있습니다.
다음은 Java EE 애플리케이션에 임베드되는 코드 샘플입니다.
javax.naming.InitialContext ctx = new javax.naming.InitialContext();

   javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3");
   MimeMessage msg = new MimeMessage(mail_session);

   msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("bob@coldmail.net"));

   msg.setFrom(new InternetAddress("alice@mail.eedge.com"));

   msg.setSubject("Important message from eEdge.com");

   msg.setText(msg_text);

   Transport.send(msg);

 
   Store store = mail_session.getStore();

   store.connect();

   Folder f = store.getFolder("Sent");

   if (!f.exists()) f.create(Folder.HOLDS_MESSAGES);

   f.appendMessages(new Message[] {msg});

 

이 태스크 정보

java:comp/env/mail 서브컨텍스트가 애플리케이션 배치 디스크립터에 선언되고 설치 특정 메일 세션 자원에 맵핑된 경우에도 Java EE 애플리케이션에서는 논리적으로 이름이 지정된 메일 연결 팩토리에 대한 참조를 찾아 JavaMail API를 사용할 수 있습니다. 다른 Java EE 자원의 경우와 같이 애플리케이션이 외부 자원에 참조를 하드 코드할 필요가 없도록 이를 수행할 수 있습니다.

프로시저

  1. JNDI(Java Naming and Directory Interface)를 통해 자원을 찾으십시오. Java EE 스펙은 메일 세션 인스턴스를 자원 또는 메일 전송 및 저장 연결을 확보할 수 있는 팩토리로 간주합니다. 메일 세션을 하드 코드하지 마십시오. (Properties 오브젝트를 채운 다음 이를 사용하여 javax.mail.Session 오브젝트를 작성하십시오.) 대신에 시스템 기능을 통해 자원을 구성하고 JNDI 찾아보기를 통해 자원을 찾는 Java EE 프로그래밍 모델을 따라야 합니다.

    이전 샘플 코드에서 javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3"); 행은 메일 세션을 하드 코드하지 않고 JNDI를 통해 배치된 자원 이름을 사용하는 예입니다. 검색 이름인 mail/MailSession3을 실제 자원에 대한 간접 참조로 간주할 수 있습니다.

  2. 애플리케이션을 어셈블링하는 동안 자원 참조를 정의하십시오. 메일 세션이 JNDI 검색에서 참조되므로 메일 자원에 대한 자원 참조를 컴포넌트의 배치 디스크립터에 정의해야 합니다. 일반적으로 애플리케이션 서버와 함께 제공된 어셈블리 도구를 사용할 수 있습니다.
    참조를 작성하는 경우 참조 이름이 코드에 사용된 이름과 일치하는지 확인하십시오. 예를 들면, 이전 코드는 해당 검색에서 java:comp/env/mail/MailSession3을 사용합니다. 그러므로 이 참조의 이름은 mail/Session3이어야 하고, 자원 유형은 javax.mail.Session이어야 합니다. 구성 후에 배치 디스크립터에는 메일 자원 참조를 위해 다음과 같은 항목이 포함됩니다.
    <resource-reference> 
       <description>description</description>  
       <res-ref-name>mail/MailSession3</res-ref-name>
       <res-type>javax.mail.Session</res-type>  
       <res-auth>Container</res-auth>
    </resource-reference>
  3. 메일 제공자 및 세션을 구성하십시오. 샘플 코드에서 메일 자원을 참조하고, 배치 디스크립터가 참조를 선언하지만 자원 자체는 존재하지 않습니다. 이제 애플리케이션 컴포넌트에서 참조하는 메일 자원을 구성해야 합니다. 구성하는 메일 세션에는 전송 및 메일 액세스 부분이 모두 정의되어 있어야 합니다. 전송 부분은 코드가 메시지를 전송하기 때문에 필요하고 메일 액세스 부분은 로컬 메일 저장소에 사본을 저장하기 때문에 필요합니다. 메일 세션 구성 시 NDI 이름을 지정해야 합니다. 이 이름은 애플리케이션을 설치하고 사용자가 구성하는 실제 자원과 함께 애플리케이션에서 자원 참조를 링크시키는 중요한 이름입니다.
  4. 애플리케이션을 설치하십시오. 관리 콘솔 또는 스크립트 도구를 사용하여 애플리케이션을 설치할 수 있습니다. 설치 중 애플리케이션 서버는 모든 자원 참조를 검사하고 이들 각각에 대한 JNDI 이름을 제공하도록 요구합니다. 이는 임의의 JNDI 이름이 아니지만, 대상인 구성된 특정 자원에 부여된 JNDI 이름입니다.
  5. 기존 메일 제공자 및 세션을 관리하십시오. 메일 제공자 및 세션을 업데이트하고 제거할 수 있습니다.

    메일 제공자 및 세션을 업데이트하려면 다음을 수행하십시오.

    1. 관리 콘솔을 여십시오.
    2. 콘솔 탐색 트리에서 자원 > 메일을 클릭하십시오.
    3. 메일 제공자 또는 메일 세션을 클릭하여 수정할 적절한 Java 메일 자원을 선택하십시오.
    4. 수정할 특정 자원을 선택하십시오. 메일 제공자 또는 메일 서버를 제거하려면 해당 자원 옆에 있는 선택란을 선택하고 삭제를 클릭하십시오.
    5. 적용 또는 확인을 클릭하십시오.
    6. 구성을 저장하십시오.
  6. 옵션: 메일 세션을 디버그하십시오.

다음에 수행할 작업

애플리케이션에 클라이언트가 있는 경우, 애플리케이션 클라이언트 자원 구성 도구(ACRCT)를 사용하여 메일 제공자 및 메일 세션을 업데이트할 수 있습니다.

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmai_jovr
파일 이름:tmai_jovr.html