A javamail üzenetek kezelése

A szabadon elosztható JavaMail könyvtár célja, hogy csatlakozzon a levélkiszolgálókhoz az SMTP protokollok segítségével fogadni és elküldeni az e-maileket. POP3 és IMAP. A könyvtár lehetővé teszi a mellékletekkel ellátott üzenetek küldését és törlését a levélkiszolgálón.

JavaMail API protokollok

  • Az SMTP (Simple Mail Transfer Protocol) egy széles körben használt hálózati protokoll az e-mail küldésére a TCP / IP hálózatokon. Az elektronikus levélkiszolgálók az SMTP protokollt használják e-mail üzenetek küldésére és fogadására. Az ügyféllevél-alkalmazások általában csak az SMTP-t használják, hogy üzeneteket küldjenek a levélkiszolgálóra, és a 25. portot használják (465-ös SSL esetén). Ie Az SMTP kimenő levelek küldése.
  • Az IMAP (Internet Message Access Protocol) egy alkalmazás szintű protokoll az e-mailek eléréséhez. Az IMAP bőséges lehetőséget biztosít a felhasználó számára a távoli kiszolgálón található postafiókokkal való együttműködésre. A protokollt használó levelezőprogram hozzáférhet a kiszolgáló levelező tárhelyéhez, mintha a címzett számítógépén lenne. Az e-maileket a felhasználó számítógépről vezérelheti anélkül, hogy fájlokat küldene a hálózaton. Az IMAP a TCP protokollt használja, és a 143-as porton figyel.
  • POP3 (Post Office Protocol Version 3 Post Office Protocol V3) - szabványos hálózati alkalmazás protokoll által használt e-mail kliensek letölteni mail távoli szerver TCP / IP-kapcsolat. POP3 protokoll támogatja az egyszerű követelmények „terhelés-és merész” a postafiók eléréséhez. POP3 szerver porton figyel a 110.

SMTP üzenet küldése

A SendEmail.java osztály konstruktora, az SMTP SSL beállítása

A MimeMessage-típus üzenetobjektumának konstruktora paraméterként megkapja az SMTP-kiszolgáló által védett munkamenet által létrehozott munkamenetet.

Listázó Authenticator EmailAuthenticator.java

Fájl csatolása egy üzenethez, MimeBodyPart

Ha fájlt szeretne csatolni egy üzenethez, létre kell hoznia egy MimeBodyPart típusú objektumot. ahol a paraméterek megadják a fájl elérési útját és a fájl nevét. Az alábbi lista a MimeBodyPart objektum létrehozásának függvényét tartalmazza az üzenetbe beágyazható fájl tartalmával.

Üzenet küldése, Több rész

Az sendMessage funkció befejezi az üzenetet. Ehhez létrehoz egy mmp típusú MimeMultipart objektumot. amelyben más objektumokat is csatolhat, mint például a MimeBodyPart (szöveg, fájl). A setContent üzenet módja. A MimeMultipart objektum paraméterként kerül átadásra. meghatározza az üzenet tartalmát.

Üzenet küldéséhez használja a szállítási osztály küldési módját. amely a következő túlterhelt küldési módszerekkel rendelkezik:

Az első küldés módja üzenetet küld az üzenetben megadott címzetteknek. A második módszer üzenetet fog küldeni a cím tömbben definiált összes címzettnek, kivéve azokat, amelyek az üzenetben szerepelnek.

Példa egy üzenet küldésére

Az üzenet elküldéséhez hozzon létre az email.properties tulajdonságfájlt. amelyben meghatározzuk az összes szükséges SMTP szerver paramétert és a kapcsolódási paramétereket. A példában a Yandex levelező kiszolgálót használjuk. bár a beállítások lehetővé teszik a többi ismert levélkiszolgáló használatát.

Az üzenet elküldéséhez a következő EmailTest osztály használható. Először a levélkiszolgáló paramétereit és a kapcsolat paramétereit a tulajdonságfájlból olvassuk le. Az InputStream osztály a fájl olvasására szolgál. bővebb információt a Beviteli folyamatok oldalon talál. Ezután létrehozza a SendEmail objektumot, és elküldi az üzenetet.

A bemutatott példa kis változásokkal használható üzenetek küldésére.

IMAP üzenetek olvasása

Amint fentebb megjegyeztük, az IMAP-t e-mail üzenetek olvasására kell használni. Az IMAP protokoll használatakor a programnak csatlakoznia kell a kiszolgálóhoz és hozzáférést kell kapnia az INBOX mappához. IMAP-kapcsolatfolyamat konfigurálásához meg kell adnia a következőket:

Az e-mail üzenetek olvasásának példája

A következő példában először konfigurálja a munkamenetet a levélkiszolgálóval, hogy működjön a "privát" kommunikációs csatornán. Ezután olvassa el az előző példában küldött "INBOX" mappa utolsó üzeneteit. A konzol az utolsó üzenettel kapcsolatos információkat jeleníti meg.

Egy példa a munkához, helyettesíti a valódi bejelentkezési jelszót és a jelszót ellipszis helyett.

A példa absztrakt osztályokat használ

  • Store - egy üzenet tárolása, amelyet a levélkiszolgáló támogat és a tulajdonos csoportosítja,
  • Mappa - lehetővé teszi az üzenetek hierarchikus rendezését. A mappák tartalmazhatnak üzeneteket és alkönyvtárakat.

A következő üzenet jelenik meg a konzolban. Természetesen az INBOX postafiókban lévő üzenetek száma eltérõ lesz.

A JavaMail könyvtár Eclipse projektként történő használatának példáit itt töltheti le (930 KB).