- E-mail küldése JavaMail API használatával
- E-mail küldésének lépései a JavaMail API használatával
- Szerezze be a munkamenet objektumot
- Írja meg az üzenetet
- küldje el az üzenetet
- Egyszerű példa e-mail küldésére JavaMail API használatával
- 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 objektumot | amely 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ódszer | Leírás |
1 | nyilvános statikus munkamenet getDefaultInstance (Tulajdonságok kellékei) | visszaadja az alapértelmezett munkamenetet. |
2 | nyilvános statikus munkamenet getDefaultInstance (Tulajdonságok kellékei, Authenticator auth) | visszaadja az alapértelmezett munkamenetet. |
3 | nyilvános statikus munkamenet getInstance (tulajdonságok kellékei) | visszaadja az új munkamenetet. |
4 | nyilvá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ódszer | Leírás |
1 | public void setFrom(cím cím) | a from header mező beállítására szolgál. |
2 | public 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. |
3 | public 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. |
4 | public void setSubject(String tárgy) | a tárgyfejléc mező beállítására szolgál. |
5 | public 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. |
6 | public 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ódszer | Leírás |
1 | nyilvános statikus érvénytelen küldés (üzenet) | használja, küldje el az üzenetet. |
2 | nyilvá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
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:töltse le ezeket a jar fájlokat, vagy látogasson el az Oracle webhelyére a legújabb verzió letöltéséhez. |
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éhezEbben 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ájlt | c:> set classpath=mail.jar;activation.jar;.; |
fordítsa le a forrásfájlt | c:> javac SendEmail.java |
működteti | c:> 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
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:töltse le ezeket a jar fájlokat, vagy keresse fel az Oracle webhelyét a legújabb verzió letöltéséhez. |
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éhezAmint 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ájlt | c:> set classpath=mail.jar;activation.jar;.; |
fordítsa le a forrásfájlt | c:> javac SendMailBySite.java |
működteti | c:> java SendMailBySite |