logo

E-mail küldése Java nyelven

  1. E-mail küldése JavaMail API használatával
  2. E-mail küldésének lépései a JavaMail API használatával
    1. Szerezze be a munkamenet objektumot
    2. Írja meg az üzenetet
    3. küldje el az üzenetet
  3. Egyszerű példa e-mail küldésére JavaMail API használatával
  4. Példa e-mail küldésére JavaMail API használatával a gazdagép szolgáltatója által biztosított SMTP-kiszolgálón keresztül

A JavaMail API használatával többféleképpen küldhet e-mailt. Ehhez SMTP-kiszolgálóval kell rendelkeznie, amely felelős a levelek küldéséért.

Az SMTP-kiszolgáló beszerzéséhez az alábbi technikák egyikét használhatja:

  • Telepítsen és használjon bármilyen SMTP-kiszolgálót, például Postcast-kiszolgálót, Apache James-kiszolgálót, cmail-kiszolgálót stb. (vagy)
  • Használja a gazdagép szolgáltató által biztosított SMTP szervert pl. az SMTP szerverem a mail.javatpoint.com (vagy)
  • Használja a más cégek által biztosított SMTP szervert pl. gmail stb.

Itt a fenti három megközelítést fogjuk megtanulni az e-mailek küldésére a javamail API használatával. De meg kell tanulnunk az e-mailek Java alkalmazásból történő küldésének alapvető lépéseit.


E-mail küldésének lépései a JavaMail API használatával

A következő három lépésben kell e-mailt küldeni a JavaMail használatával. Ezek a következők:

    Szerezze be a munkamenet objektumotamely tárolja a gazdagép összes információját, például a gazdagép nevét, felhasználónevét, jelszavát stb.összeállítani az üzenetet küldje el az üzenetet


1) Szerezze be a munkamenet objektumot

A javax.mail.Session osztály két módszert biztosít a session objektumának lekérésére, a Session.getDefaultInstance() metódust és a Session.getInstance() metódust. A munkamenet objektum beszerzéséhez bármilyen módszert használhat.

A foglalkozási osztály módszere

Nem.MódszerLeírás
1nyilvános statikus munkamenet getDefaultInstance (Tulajdonságok kellékei)visszaadja az alapértelmezett munkamenetet.
2nyilvános statikus munkamenet getDefaultInstance (Tulajdonságok kellékei, Authenticator auth)visszaadja az alapértelmezett munkamenetet.
3nyilvános statikus munkamenet getInstance (tulajdonságok kellékei)visszaadja az új munkamenetet.
4nyilvános statikus munkamenet getInstance (Tulajdonságok kellékei, Hitelesítő hitelesítés)visszaadja az új munkamenetet.

Példa a getDefaultInstance() metódusra

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

Példa a getInstance() metódusra

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) Írja meg az üzenetet

A javax.mail.Message osztály módszereket biztosít az üzenet összeállításához. De ez egy absztrakt osztály, ezért a javax.mail.internet.MimeMessage osztályt többnyire használják.
Az üzenet létrehozásához át kell adnia a munkamenet objektumot a MimeMessage osztálykonstruktorban. Például:
 MimeMessage message=new MimeMessage(session); 
Most az üzenetobjektum létrejött, de az információ tárolására ebben az objektumban a MimeMessage osztály számos módszert biztosít. Lássuk a MimeMessage osztály által biztosított metódusokat:

A MimeMessage osztály általánosan használt metódusai

Nem.MódszerLeírás
1public void setFrom(cím cím)a from header mező beállítására szolgál.
2public void addRecipient(Üzenet.Címzett típusa, Címcím)A megadott cím hozzáadására szolgál a címzett típushoz.
3public void addRecipients (Üzenet. Címzett típusa, Cím[] címek)A megadott címek hozzáadására szolgál a címzett típushoz.
4public void setSubject(String tárgy)a tárgyfejléc mező beállítására szolgál.
5public void setText (karakterlánc szöveges üzenet)arra szolgál, hogy a szöveget üzenettartalomként állítsa be szöveg/sima MIME típus használatával.
6public void setContent(Object Message, String contentType)A tartalom beállítására szolgál üzenettartalomként az adott MIME típus használatával.

Példa az üzenet összeállítására:

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) Küldje el az üzenetet

A javax.mail.Transport osztály biztosítja az üzenet elküldésének módját.

A Transport osztály általánosan használt metódusai

Nem.MódszerLeírás
1nyilvános statikus érvénytelen küldés (üzenet)használja, küldje el az üzenetet.
2nyilvános statikus érvénytelen küldés (üzenet, cím[] cím)használja, küldje el az üzenetet a megadott címekre.

Példa az üzenet küldésére:

 Transport.send(message); 

Egyszerű példa e-mail küldésére Java nyelven

töltse le ezeket a jar fájlokat, vagy látogasson el az Oracle webhelyére a legújabb verzió letöltéséhez.
Ebben a példában megtanuljuk, hogyan lehet e-mailt küldeni a gépre telepített SMTP szerverrel, pl. Postcast szerver, Apache James szerver, Cmail szerver stb. Ha a gazdagép szolgáltatója által biztosított SMTP-szerver használatával szeretne e-mailt küldeni, nézze meg az ezt követő példát.
Az e-mail JavaMail API használatával történő küldéséhez be kell töltenie a két jar fájlt:
mail.jar
aktiválás.jar
 import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
töltse le ezt a példát e-mail küldéséhez

Ebben a példában megtanuljuk, hogyan lehet e-mailt küldeni a gépre telepített SMTP szerverrel, pl. Postcast szerver, Apache James szerver, Cmail szerver stb. Ha a gazdagép szolgáltatója által biztosított SMTP-kiszolgálón keresztül szeretne e-mailt küldeni, nézze meg az ezt követő példát.

A példa futtatásához két jar fájlt kell betöltenie. A jar fájl betöltésének 4 módja van. Ennek egyik módja az osztályútvonal beállítása. Nézzük meg, hogyan futtassuk ezt a példát:

Töltse be a jar fájltc:> set classpath=mail.jar;activation.jar;.;
fordítsa le a forrásfájltc:> javac SendEmail.java
működtetic:> java SendEmail

Példa e-mail küldésére Java nyelven a gazdagép szolgáltatója által biztosított SMTP-kiszolgálón keresztül

töltse le ezeket a jar fájlokat, vagy keresse fel az Oracle webhelyét a legújabb verzió letöltéséhez.
Ha a gazdagép szolgáltató által biztosított SMTP szervert használja pl. mail.javatpoint.com , hitelesítenie kell a felhasználónevet és a jelszót. A javax.mail.PasswordAuthentication osztály a jelszó hitelesítésére szolgál.
Ha az e-mailt JavaMail API használatával küldi, töltse be a két jar fájlt:
mail.jar
aktiválás.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
töltse le ezt a példát e-mail küldéséhez

Amint az a fenti példában látható, a felhasználói azonosítót és a jelszót hitelesíteni kell. Ahogy ez a program mutatja, könnyen küldhet e-mailt. Ennek megfelelően módosítsa a felhasználónevet és a jelszót. Nézzük meg, hogyan futtassuk még egyszer egyszerű technikával:

Töltse be a jar fájltc:> set classpath=mail.jar;activation.jar;.;
fordítsa le a forrásfájltc:> javac SendMailBySite.java
működtetic:> java SendMailBySite