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.