E-mail küldése a java ee alkalmazásból

A weboldal a Java programozási nyelvre épülő webes alkalmazások fejlesztésére irányul. javasource.ru anyagok témákkal állnak egymással: a GlassFish alkalmazásszerver, keret, JavaServer Faces, NetBeans IDE, on-line szolgáltatás GitHub, Apache Tomcat servlet konténer, Java Web Start technológia, a vonatkozó előírásokat és dokumentáció Java Platform Enterprise Edition - JEE

A GlassFish szerveren vagy bármely más JavaEE-kompatibilis alkalmazáskiszolgálón telepített alkalmazások gyakran biztosítják az e-mailek küldését. A JavaEE-specifikáció részét képező JavaMail API-nak köszönhetően könnyen küldhet e-maileket a JavaEE alkalmazásokból.

Ahhoz, hogy végrehajthassuk az e-mailek JavaEE alkalmazásból történő elküldésének képességét, hozzáférhetünk a levélkiszolgálóhoz. Ez általában a Simple Mail Transfer Protocol használatával valósul meg. Röviden - SMTP.

Az GlassFish kiszolgáló konfigurálása mail küldésére

Mielőtt küldhetünk e-maileket a JavaEE alkalmazásokból, be kell állítanunk néhány GlassFish alkalmazáskiszolgálót. Először is meg kell adni az új munkamenet javamail, ha bejelentkezik a webes adminisztrációs konzol bővülő források (Resources) a navigációs fát a bal oldali panelen az oldalt, majd kattintson a csomópont Sessions javamail (JavaMailSessions).

Új JavaMail munkamenet létrehozásához meg kell kattintanunk az Új ... gombra, és be kell állítanunk bizonyos értékeket a megnyitott oldal mezőkben és listákban.

1. JNDIName - meg kell adnia a JavaMail munkamenet JNDI nevét. Ennek a névnek érvényesnek és egyedinek kell lennie. Az alkalmazások az e-mail szolgáltatás eléréséhez használják.

2. MailHost - adja meg a levélkiszolgáló DNS-nevét, amelyet e-mail küldéséhez használunk.

3. DefaultUser - adja meg az alapértelmezett felhasználónevet, amelyet a levélkiszolgálóhoz való csatlakozáshoz használ.

5. Állapot - egy jelölőnégyzet, amely lehetővé teszi a javaMail munkamenet engedélyezését vagy letiltását.

6. StoreProtocol - a levélkiszolgáló-tároló protokoll értékének meghatározására használható, amely lehetővé teszi alkalmazásaink számára e-mailek fogadását. A mező érvényes értékei: imap, imaps, pop3 b pop3s.
Figyelj! A tárolási protokollt figyelmen kívül hagyja, ha az alkalmazások csak e-maileket küldenek. Általában alkalmazásaink sokkal gyakrabban küldenek e-maileket, mint azok. Ha az összes olyan alkalmazás, amely a levelezésünket használja, csak üzeneteket küld, a FieldProtocol mező értéke, valamint a StoreProtocolClass mezők figyelmen kívül maradnak.

7. StoreProtocolClass - ez a mező megadja a megadott tárolási protokollnak megfelelő szolgáltató végrehajtási osztályát.

8. TransportProtocol - lehet megadni az értékét a szállítási protokoll az e-mail szerver, amelyen a kérelmek képes lesz e-mailt küldeni. A mező értéke érvényes: smtp és smtps.

9. TransportProtocolClass - jelzi a szolgáltató végrehajtási osztályát, amely megfelel a megadott szállítási protokollnak

b. com.sun.mail.smtp.SMTPSSLTransport - szállítási protokoll SMTP

10. Ellenőrzés - ez a jelölőnégyzet engedélyezi vagy letiltja a JavaMail munkamenetének hibaelhárítását

Miután megadta az összes szükséges információt a szerverünknek, a JavaMail munkamenet létrehozásához csak a főoldali sáv jobb felső sarkában lévő OK gombra kell kattintanunk. Mostantól a létrehozott munkamenet képes lesz a telepített alkalmazások használatára.

Az e-mailek kézbesítési funkciójának végrehajtása

Miután megkapta a konfigurált Javamail munkamenetet, könnyen végrehajthatjuk az e-mailek kézbesítését. Az alábbiakban példák az osztálykódra és az űrlapra, amely e-maileket küld a Java-nak a GlassFish alkalmazáskiszolgálótól.

Minta Java kód

Példa a küldemény formanyomtatvány XHTML kódjára

Az első dolog, amit meg kell tennünk, az inject (létrehozni) egy létrehozott JavaMail munkamenet példányát, hozzáadva a javax.mail.Session típusú változót az osztály szintjén és a @Resource jelöléssel díszítve. A jegyzet attribútumának attribútumának értéke meg kell egyeznie azzal a JNDI névvel, amelyet JavaMail munkamenetünkhöz adtunk, miközben létrehozták.

Ezután létre kell hoznunk egy példányt a javax.mail.internet.MimeMessage-nek, amely a munkamenet objektumát paraméterként adja át a konstruktorhoz.

Ha kell elküldeni az üzenetet több címzettnek, akkor addRecipients () metódus az osztály javax.mail.Message (vagy annak egyik alosztályok, például javax.mail.internet.MimeMessage). Ez a módszer a vevőkészülék típusát veszi át első paraméterként, és a tömb javax.mail.Address - a második. Az üzenet a tömb minden címzettjére kerül. Ha ezt a módszert használja, a setRecipient () helyett nem korlátozódik a címzettek egyetlen címzett típusára.

Miután megadta egy vagy több címzettet, hozzá kell adnia az üzenet tárgyát és a szöveget, amely a setSubject () és a setTex () metódusokat az üzenetpéldányra írja.

Most készen állunk arra, hogy üzenetet küldjünk. Ehhez egyszerűen hívja a static send () metódust a javax.mail.Transport osztályra. Ez a módszer egy üzenetpéldányt vesz fel paraméterként.

Kapcsolódó cikkek