- Odosielanie e-mailov pomocou JavaMail API
- Kroky na odosielanie e-mailov pomocou JavaMail API
- Získajte objekt relácie
- Napíšte správu
- odošlite správu
- Jednoduchý príklad odosielania e-mailov pomocou JavaMail API
- Príklad odosielania e-mailov pomocou JavaMail API cez SMTP server poskytnutý poskytovateľom hostiteľa
Existujú rôzne spôsoby odosielania e-mailov pomocou JavaMail API. Na tento účel musíte mať server SMTP, ktorý je zodpovedný za odosielanie e-mailov.
Na získanie servera SMTP môžete použiť jednu z nasledujúcich techník:
- Nainštalujte a používajte akýkoľvek server SMTP, ako je server Postcast, server Apache James, server cmail atď. (alebo)
- Použite SMTP server poskytovaný poskytovateľom hostiteľa, napr. môj SMTP server je mail.javatpoint.com (alebo)
- Použite SMTP server poskytovaný inými spoločnosťami, napr. gmail atď.
Tu sa naučíme vyššie uvedené tri prístupy k odosielaniu e-mailov pomocou rozhrania Javamail API. Mali by sme sa však naučiť základné kroky na odosielanie e-mailov z aplikácie Java.
Kroky na odosielanie e-mailov pomocou JavaMail API
Na odoslanie e-mailu pomocou JavaMail sú nasledujúce tri kroky. Sú nasledovné:
Získajte objekt relácie | ktorý ukladá všetky informácie o hostiteľovi, ako je názov hostiteľa, používateľské meno, heslo atď.
napísať správu |
odošlite správu |
1) Získajte objekt relácie
The trieda javax.mail.Session poskytuje dve metódy na získanie objektu relácie, metódu Session.getDefaultInstance() a metódu Session.getInstance(). Na získanie objektu relácie môžete použiť akúkoľvek metódu.
Trieda metódy relácie
Nie | Metóda | Popis |
1 | verejná statická relácia getDefaultInstance(Properties props) | vráti predvolenú reláciu. |
2 | verejná statická relácia getDefaultInstance(Properties Properties,Authenticator auth) | vráti predvolenú reláciu. |
3 | verejná statická relácia getInstance (rekvizity vlastností) | vráti novú reláciu. |
4 | verejná statická relácia getInstance (podpory vlastností, authenticator auth) | vráti novú reláciu. |
Príklad metódy getDefaultInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
Príklad metódy getInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) Napíšte správu
Trieda javax.mail.Message poskytuje metódy na vytvorenie správy. Je to však abstraktná trieda, takže sa väčšinou používa jej podtrieda javax.mail.internet.MimeMessage. |
Ak chcete vytvoriť správu, musíte odovzdať objekt relácie v konštruktore triedy MimeMessage. Napríklad: |
MimeMessage message=new MimeMessage(session);
Teraz bol vytvorený objekt správy, ale na ukladanie informácií do tohto objektu trieda MimeMessage poskytuje mnoho metód. Pozrime sa na metódy, ktoré poskytuje trieda MimeMessage: |
Bežne používané metódy triedy MimeMessage
Nie | Metóda | Popis |
1 | public void setFrom(adresa) | sa používa na nastavenie poľa od hlavičky. |
2 | public void addRecipient(Message.RecipientType type, Address address) | slúži na pridanie danej adresy k typu príjemcu. |
3 | public void addRecipients(Message.RecipientType type, Address[] addresss) | slúži na pridanie daných adries k typu príjemcu. |
4 | public void setSubject(String subject) | sa používa na nastavenie poľa hlavičky predmetu. |
5 | public void setText(String textmessage) | sa používa na nastavenie textu ako obsahu správy pomocou typu text/plain MIME. |
6 | public void setContent(Object msg, String contentType) | sa používa na nastavenie obsahu ako obsahu správy pomocou daného typu MIME. |
Príklad na vytvorenie správy:
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) Pošlite správu
Trieda javax.mail.Transport poskytuje metódu na odoslanie správy. |
Bežne používané metódy triedy Transport
Nie | Metóda | Popis |
1 | verejné statické void odoslať (správa správy) | odošlite správu. |
2 | verejné statické void odoslať (správa správy, adresa[] adresa) | sa používa odoslanie správy na uvedené adresy. |
Príklad na odoslanie správy:
Transport.send(message);
Jednoduchý príklad odosielania e-mailov v jazyku Java
V tomto príklade sa naučíme odosielať e-maily pomocou servera SMTP nainštalovaného na stroji, napr. Postcast server, server Apache James, server Cmail atď. Ak chcete posielať e-maily pomocou servera SMTP poskytnutého poskytovateľom hostiteľa, pozrite si príklad po tomto. |
Ak chcete odoslať e-mail pomocou rozhrania JavaMail API, musíte načítať dva súbory jar:stiahnite si tieto jar súbory alebo prejdite na stránku Oracle a stiahnite si najnovšiu verziu. |
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();} } }
stiahnite si tento príklad na odoslanie e-mailuV tomto príklade sa naučíme odosielať e-maily pomocou servera SMTP nainštalovaného na stroji, napr. Postcast server, server Apache James, server Cmail atď. Ak chcete posielať e-maily pomocou servera SMTP poskytnutého poskytovateľom hostiteľa, pozrite si príklad po tomto.
Ak chcete spustiť tento príklad, musíte načítať dva súbory jar. Existujú 4 spôsoby, ako načítať súbor jar. Jedným zo spôsobov je nastavenie classpath. Pozrime sa, ako spustiť tento príklad:
Načítajte súbor jar | c:> set classpath=mail.jar;activation.jar;.; |
skompilovať zdrojový súbor | c:> javac SendEmail.java |
prebehnúť | c:> java SendEmail |
Príklad odosielania e-mailov v jazyku Java cez server SMTP poskytnutý poskytovateľom hostiteľa
Ak používate server SMTP poskytovaný poskytovateľom hostiteľa, napr. mail.javatpoint.com , musíte overiť používateľské meno a heslo. Na overenie hesla sa používa trieda javax.mail.PasswordAuthentication. |
Ak odosielate e-mail pomocou rozhrania JavaMail API, načítajte dva súbory jar:stiahnite si tieto jar súbory alebo prejdite na stránku Oracle a stiahnite si najnovšiu verziu. |
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();} } }
stiahnite si tento príklad na odoslanie e-mailuAko môžete vidieť vo vyššie uvedenom príklade, ID používateľa a heslo je potrebné overiť. Ako ukazuje tento program, môžete jednoducho odosielať e-maily. Podľa toho zmeňte používateľské meno a heslo. Pozrime sa, ako to znova spustiť jednoduchou technikou:
Načítajte súbor jar | c:> set classpath=mail.jar;activation.jar;.; |
skompilovať zdrojový súbor | c:> javac SendMailBySite.java |
prebehnúť | c:> java SendMailBySite |