Announcement

Collapse
No announcement yet.

eMails aus Bean in Borland Application Server versenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • eMails aus Bean in Borland Application Server versenden

    Hallo!

    Weiß jemand, wie ich den BAS konfigurieren muss, damit ich eMails von einem SessionBean aus versenden kann. Ich habe leider nur eine Anleitung für JBoss.
    In den Docus zum BAS habe ich nichts gefunden.

    Hat da jemand Erfahrung und kann mir ein paar Tipps geben?

    Besten Dank

    Holger

  • #2
    Hallo,
    hier ein kleines Beispiel:
    //
    // JNDI Names of mail resources.
    //
    public static final String MAIL_SESSION = "java:comp/env/mail/MailSession";
    private SessionContext sessionContext;

    public boolean sendMail(String msgText, String subject, String host ,String from, String commaSepAddrTO, String commaSepAddrCC)
    {
    InitialContext ic = new InitialContext();
    Session session = (Session) ic.lookup(MAIL_SESSION);

    session.getProperties().setProperty("mail.smtp.hos t", mailHost);

    // construct the message
    Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(mailFrom));

    InternetAddress[] addressTO = new InternetAddress().parse(commaSepAddrTO);
    InternetAddress[] addressCC = new InternetAddress().parse(commaSepAddrCC);

    msg.setRecipients(Message.RecipientType.TO, addressTO);
    msg.setRecipients(Message.RecipientType.CC, addressCC);
    // Set Mail subject line
    msg.setSubject(mailSubject);
    // setText(text, charset)
    msg.setText(mailText);

    msg.setHeader("X-Mailer", "JavaMailer");
    msg.setSentDate(new Date());

    // send the thing off

    Transport.send(msg);
    return true;
    }

    Ich habe das ganze in eine stateless Session Bean gepackt.
    So kann ich die Komponente wiederbenutzen. Wichtig ist noch, dass
    der Code erst ab der Version 4.5 arbeitet. Bis 4.11 hat IAS keine
    eingebaute Mailunterstützung gehabt.

    Ich hoffe dieses Beispiel kann Dir helfen.

    Gruß Andreas Bukalsk

    Comment


    • #3
      Hallo Andrzej!

      Vielen Dank für die Antwort.

      public static final String MAIL_SESSION = "java:comp/env/mail/MailSession";

      Und da ist bei mir der Hund begraben.
      Könntest Du mir bitte die Auszüge aus ejb-jar.xml und ejb-inprise.xml schicken, wo die Session declariert wird?

      Besten Dank

      Holger Schul

      Comment


      • #4
        Hallo Holger,
        hier ist meine ejb-jar.xml
        <ejb-jar>
        <enterprise-beans>
        <session>
        <description>Stateless Session Bean fuer Mail-Versand.</description>
        <ejb-name>MailBean</ejb-name>
        <home>MailHome</home>
        <remote>MailRemote</remote>
        <ejb-class>MailBean</ejb-class>
        <session-type>Stateless</session-type>
        <transaction-type>Container</transaction-type>
        <env-entry>
        <env-entry-name>DefaultMailHost</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>xxx.xxx.xxx.xxx</env-entry-value>
        </env-entry>
        <env-entry>
        <env-entry-name>DefaultMailText</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>EJB Mailer</env-entry-value>
        </env-entry>
        <env-entry>
        <env-entry-name>DefaultMailSubject</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>EJB Mailer</env-entry-value>
        </env-entry>
        <env-entry>
        <env-entry-name>DefaultFrom</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>[email protected]
        </env-entry-value>
        </env-entry>
        <resource-ref>
        <res-ref-name>mail/MailSession</res-ref-name>
        <res-type>javax.mail.Session</res-type>
        <res-auth>Container</res-auth>
        </resource-ref>
        </session>
        </enterprise-beans>
        <assembly-descriptor>
        <container-transaction>
        <method>
        <ejb-name>MailBean</ejb-name>
        <method-name>*</method-name>
        </method>
        <trans-attribute>Required</trans-attribute>
        </container-transaction>
        </assembly-descriptor>
        </ejb-jar>

        ich hoffe das kann Dir helfen

        Gruß Andrea

        Comment

        Working...
        X