Hogyan küldjön levelet egy Java alkalmazásból (példával)

Hogyan küldjön levelet egy Java alkalmazásból (példával)

Hogyan küldjünk e-mailt a Java programból példával

Példa Java kódra e-mail küldéséhez

Hogyan küldjön levelet egy Java alkalmazásból (példával)

Ha levelet szeretne küldeni egy Java programból, akkor szüksége lesz a Java Mail API-ra és a Java aktivációs keretre (JAF); pontosabban, mail-1.4.5.jar szükséges. smtp-1.4.4.jar. és aktiválás-1.1.jar. Le kell töltenie ezeket a JAR fájlokat, és be kell őket csatolnia a Classpathba a program futtatásához. Alternatív megoldásként a Maven segítségével kezelheti a függőségeket és engedélyezheti az összes függőséget. Miután mindegyik JAR-fájl megvan, kövesse az alábbi lépéseket az e-mail létrehozásához és elküldéséhez a Java segítségével.

  1. Hozzon létre egy Session objektumot a Session.getDefaultInstance (properties) hívásával. ahol a tulajdonságok - minden fontos tulajdonságot tartalmaznak, például az SMTP-kiszolgáló gazdanevét.
  2. Hozzon létre egy MimeMessage objektumot egy Session objektum átadásával. az előző lépésben kapott. Ennek a tárgynak számos tulajdonsága van, például a levél címzettje, a tárgy, az üzenetek teste, mellékletei stb.
  3. A javax.mail.Transport használatával elküldheti az üzenetet a statikus küldési (email) módszerrel. ahol az e-mail lehet MimeMessage objektum.

A Session objektum létrehozásához használt tulajdonságok száma az SMTP-kiszolgáló típusától függ, például, ha SMTP-kiszolgálót használ. amely nem igényel semmilyen hitelesítést, létrehozhat egy Session objektumot egyetlen tulajdonsággal, például smtp.mail.host, és nem kell megadnia a portot, mert alapértelmezés szerint rendelkezik a 25-ös porttal. Másrészt, ha SMTP-kiszolgálóhoz csatlakozik. amelyhez TLS- vagy SSL-hitelesítésre van szükség, például a GMail SMTP gazdagépéhez, akkor még néhány tulajdonságot kell megadnia, például a mail.smtp.port = 547 a TLS-hez és a mail.smtp.port = 457 az SSL-hez.

Ez egy teljes Java program, amely hitelesítés nélkül csatlakozik egy szabványos SMTP-kiszolgálóhoz, és szöveges üzenetet küld a Java Mail API használatával.

A kimeneten:
Ezt a programot fordíthatja és futtathatja, hogy egyszerű e-mailt küldjön a Java programból:


E-mail sikeresen elküldve ...

Személyeket felvehet a TO mezőbe a Message.RecipientType.TO segítségével. a CC mezőben a Message.RecipientType.CC használatával. és a BCC - Message.RecipientType.BCC.

Hibák és kivételek


Ha sok Java programozó először elkezdi egy e-mail küldésére irányuló programot, hibát ütköznek, mivel legtöbbjük úgy gondolja, hogy a mail.jar és az activation.jar elég lesz ahhoz, hogy levelet küldjön a Java-alkalmazásból, ami nem ez a helyzet, különösen ha e-mailt küldenek egy helyi SMTP szerveren keresztül Linux alatt. Ha ezt a programot csak mail.jar és activation.jar segítségével futtatja a CLASSPATH-ban. akkor valószínűleg ezt a hibát kapja.

1. kivétel:


Bár ez a hiba megoldása nagyon egyszerű, összetévesztheti Önt. java.net.ConnectException: Csatlakozás megtagadva: a kapcsolat általában összeomlik, amikor a kiszolgáló nem működik, vagy a rossz port, amelyen a kapcsolat nem működik. Megoldás: kivéve a mail-1.4.5.jar parancsot, az smtp-1.4.4.jar és az activation-1.1.jar is szükséges.

2. kivétel:

Ez egy újabb hiba a NoClassDefFoundError néven. amely rendszerint a Classpath hiányzó JAR-fájljára utal

Megoldás: sikerült megoldani a problémámat, mert helytelen Classpath volt. Annak ellenére, hogy mindhárom szükséges JAR-okat, a program Java osztály fájlját egy könyvtárban végeztem, és innen futottam a programot, a Java nem értette meg. Megpróbáltam beírni a következő parancsokat, és a program jól működött:


E-mail sikeresen elküldve ...

Kérjük, vegye figyelembe, hogy az aktuális könyvtárat a Classpath argumentum végén lévő pont jelöli. Mivel futottam a programot Linuxon, kettőspontot (:) helyett pontosvesszővel (;) használtam (mint a Windows alatt).

Ez arról szól, hogyan küldhetünk e-mailt egy Java alkalmazásból egy levél-API használatával. Lehet, hogy ez nagyon egyszerű, hiszen nem kell több, mint három JAR fájl. Sokkal könnyebb, ha Gradle-t vagy Maven-et használ a függőség kezelésére. Az alábbi útmutatókban a Java Mail API bonyolultabb példáit fogjuk látni e-mail mellékletek küldésével, képekkel és szép formátumú e-mailekkel a jelentések és táblák küldéséhez.

Jó nap mindenkinek. Az üzenetet küldeni szeretném a vállalati doboz google használatával, a hozzá tartozó paraméterek (portok, SSL, TLS), amennyire én értem, a "properties.setProperty (String kulcs, String érték); Megtudhatja nekünk, hogy a "String kulcs" hogyan néz ki ezekre a paraméterekre (szintaxisra), vagy ahol láthatja a lehetséges paraméterek teljes listáját. A Google a java.util.Properties és a javax.mail.Session, de a paraméterek listáját soha nem találta meg. Köszönjük előre.

Megtaláltam! Talán valakinek szüksége lesz:

("Mail.smtp.host", "smtp.gmail.com");
("Mail.smtp.socketFactory.port", "465");
("Mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
("Mail.smtp.auth", "true")
("Mail.smtp.port", "465")

("Mail.smtp.auth", "true")
("Mail.smtp.starttls.enable", "true")
("Mail.smtp.host", "smtp.gmail.com")
("Mail.smtp.port", "587")

Hello, segíts, nem tudok hozzáadni jar-fájlokat. Letöltöm, bedobom őket a mappába, hozzáadom az osztálypályát a változó elérési útjához + a fájl nevét, megpróbálom importálni az osztályokat, de még mindig nem láthatók, mi lehet a probléma. Megpróbáltam hozzáadni őket a File \ Settings \ Plugins \ Install plugin-ből a lemezről, hibát ad "nem tölt be plugin descriptor-t a fájlból"

Köszönöm. Jó fordítás!
PS olvasd el a cikket, a Yandex kiszolgálóval való együttműködést összegyűjtöttem, minden kiderült.