J2EE-Anwendungen für die Verwendung von Mailressourcen mit JavaMail aktivieren

Sie können Ihre Java EE-Anwendungen für die Verwendung von Mailressourcen über die JavaMail-API aktivieren.

Vorbereitende Schritte

Mit der JavaMail-API kann ein Codesegment in jede Java EE-Anwendungskomponente, z. B. eine EJB oder ein Servlet, integriert werden. Auf diese Weise kann die Anwendung eine Nachricht senden und eine Kopie der Nachricht im Ordner "Gesendet" speichern.
Das folgende Codebeispiel könnten Sie in eine Java EE-Anwendung einbetten:
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});

 

Informationen zu diesem Vorgang

Java EE-Anwendungen können JavaMail-APIs verwenden. Dazu müssen Sie den Subkontext java:comp/env/mail, der im Anwendungsimplementierungsdeskriptor deklariert und installationsspezifischen Ressourcen für Mailsitzungen zugeordnet ist, nach Referenzen auf logisch benannte Mail-Verbindungsfactorys durchsuchen. Im Falle von Java EE-Ressourcen geschieht dies, damit in der Anwendung Referenzen auf externe Ressourcen nicht fest codiert werden müssen.

Vorgehensweise

  1. Suchen Sie mit Java Naming and Directory Interface (JNDI) eine Ressource. In der Java EE-Spezifikation ist die Instanz einer Mailsitzung eine Ressource oder Factory, von der Verbindungen für den Transport und das Speichern der Mail abgerufen werden können. Mailsitzungen sollten nicht fest codiert werden (d. h. ein Properties-Objekt ausfüllen und dann zum Erstellen eines javax.mail.Session-Objekts verwenden). Stattdessen müssen Sie dem Java EE-Programmiermodell für das Konfigurieren von Ressourcen über die Systemeinrichtungen folgen und diese dann mit JNDI-Lookup-Operationen suchen.

    Die Zeile javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3"); im obigen Beispiel veranschaulicht die nicht feste Codierung einer Mailsitzung und die Verwendung eines Ressourcennamens, der mit JNDI ermittelt wird. Den Lookup-Namen mail/MailSession3 können Sie als indirekte Referenz auf die reale Ressource ansehen.

  2. Definieren Sie bei der Assemblierung Ihrer Anwendung Ressourcenreferenzen. Eine Ressourcenreferenz für die Mailressource müssen Sie im Implementierungsdeskriptor der Komponente definieren, weil JNDI-Lookup sich auf eine Mailsitzung bezieht. In der Regel können Sie eines der mit dem Anwendungsserver bereitgestellten Assembliertools verwenden.
    Wenn Sie diese Referenz erstellen, vergewissern Sie sich, dass der Name der Referenz mit dem im Code verwendeten übereinstimmt. Im vorherigen Code wird beispielsweise java:comp/env/mail/MailSession3 in der Lookup-Operation verwendet. Deshalb muss der Name dieser Referenz "mail/Session3" und der Typ der Ressource "javax.mail.Session" sein. Nach der Konfiguration enthält der Implementierungsdeskriptor den folgenden Eintrag für die Referenz auf die Mailressource.
    <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. Mail-Provider und -sitzungen konfigurieren. Der Beispielcode verweist auf eine Mailressource, und der Implementierungsdeskriptor deklariert die Referenz. Die Ressource selbst ist jedoch noch nicht vorhanden. Sie müssen jetzt die Mailressource konfigurieren, auf die Ihre Anwendungskomponente verweist. Beachten Sie, dass in der von Ihnen konfigurierten Mailsitzung sowohl der Abschnitt für Transport als auch der Abschnitt für Mailzugriff definiert sein muss. Der Transportabschnitt ist erforderlich, weil der Code eine Nachricht sendet. Der Abschnitt für Mailzugriff ist notwendig, weil eine Kopie in den lokalen Mailspeicher geschrieben werden soll. Wenn Sie die Mailsitzung konfigurieren, müssen Sie einen JNDI-Namen angeben. Dieser Name ist für die Installation der Anwendung und das Verknüpfen der Ressourcenreferenzen in Ihrer Anwendung mit echten Ressourcen, die Sie konfigurieren, wichtig.
  4. Installieren Sie Ihre Anwendung. Sie können Ihre Anwendung mit der Administrationskonsole oder dem Scripting-Tool installieren. Während der Installation untersucht der Anwendungsserver alle Ressourcenreferenzen und fordert von Ihnen für jede einen JNDI-Namen an. Dies ist kein beliebiger JNDI-Name, sondern der JNDI-Name, der einer bestimmten konfigurierten Ressourcen zugewiesen wurde, die Ziel der Referenz ist.
  5. Verwalten Sie die vorhandenen Mail-Provider und -sitzungen. Sie können Mail-Provider und -Sitzungen aktualisieren und entfernen.

    Gehen Sie zum Aktualisieren von Mail-Providern und -sitzungen wie folgt vor:

    1. Öffnen Sie die Administrationskonsole.
    2. Klicken Sie in der Konsolennavigationsstruktur auf Ressourcen > Mail.
    3. Wählen Sie die zu ändernde JavaMail-Ressource aus, indem Sie auf Mail-Provider oder Mailsitzungen klicken.
    4. Wählen Sie die zu ändernde Ressource aus. Wenn Sie einen Mail-Provider oder eine Mailsitzung entfernen möchten, wählen Sie das Kontrollkästchen neben der entsprechenden Ressource aus, und klicken Sie dann auf Löschen.
    5. Klicken Sie auf Anwenden oder OK.
    6. Speichern Sie die Konfiguration.
  6. Optional: Testen Sie die Mailsitzung.

Nächste Schritte

Wenn es zu Ihrer Anwendung einen Client gibt, können Mail-Provider und Mailsitzungen mit dem ACRCT (Application Client Resource Configuration Tool) aktualisieren.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmai_jovr
Dateiname:tmai_jovr.html