- Slanje e-pošte pomoću JavaMail API-ja
- Koraci za slanje e-pošte pomoću JavaMail API-ja
- Dobijte objekt sesije
- Sastavite poruku
- poslati poruku
- Jednostavan primjer slanja e-pošte pomoću JavaMail API-ja
- Primjer slanja e-pošte pomoću JavaMail API-ja putem SMTP poslužitelja koji pruža pružatelj usluge hostinga
Postoje različiti načini za slanje e-pošte pomoću JavaMail API-ja. U tu svrhu morate imati SMTP poslužitelj koji je odgovoran za slanje mailova.
Za dobivanje SMTP poslužitelja možete koristiti jednu od sljedećih tehnika:
- Instalirajte i koristite bilo koji SMTP poslužitelj kao što je Postcast poslužitelj, Apache James poslužitelj, cmail poslužitelj itd. (ili)
- Koristite SMTP poslužitelj koji pruža host provider, npr. moj SMTP poslužitelj je mail.javatpoint.com (ili)
- Koristite SMTP poslužitelj koji pružaju druge tvrtke, npr. gmail itd.
Ovdje ćemo naučiti tri gornja pristupa za slanje e-pošte pomoću javamail API-ja. Ali trebali bismo naučiti osnovne korake za slanje e-pošte iz java aplikacije.
Koraci za slanje e-pošte pomoću JavaMail API-ja
Postoje sljedeća tri koraka za slanje e-pošte koristeći JavaMail. Oni su sljedeći:
Dobijte objekt sesije | koji pohranjuje sve informacije o hostu kao što su ime hosta, korisničko ime, lozinka itd.
sastavite poruku |
poslati poruku |
1) Dobijte objekt sesije
The javax.mail.Klasa sesije pruža dvije metode za dobivanje objekta sesije, metodu Session.getDefaultInstance() i metodu Session.getInstance(). Možete koristiti bilo koju metodu za dobivanje objekta sesije.
Metoda predavanja
Ne. | metoda | Opis |
1 | javna statička sesija getDefaultInstance(Properties props) | vraća zadanu sesiju. |
2 | javna statička sesija getDefaultInstance(Properties props,Authenticator auth) | vraća zadanu sesiju. |
3 | javna statička sesija getInstance(Properties props) | vraća novu sesiju. |
4 | javna statička sesija getInstance(Properties props, Authenticator auth) | vraća novu sesiju. |
Primjer metode getDefaultInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
Primjer metode getInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) Sastavite poruku
Klasa javax.mail.Message pruža metode za sastavljanje poruke. Ali to je apstraktna klasa pa se uglavnom koristi njena potklasa javax.mail.internet.MimeMessage klasa. |
Da biste kreirali poruku, trebate proslijediti objekt sesije u konstruktor klase MimeMessage. Na primjer: |
MimeMessage message=new MimeMessage(session);
Objekt poruke sada je stvoren, ali za pohranjivanje informacija u ovaj objekt klasa MimeMessage nudi mnoge metode. Pogledajmo metode koje nudi klasa MimeMessage: |
Često korištene metode klase MimeMessage
Ne. | metoda | Opis |
1 | public void setFrom(adresa adrese) | koristi se za postavljanje polja iz zaglavlja. |
2 | public void addRecipient(Message.RecipientType type, Address address) | koristi se za dodavanje zadane adrese vrsti primatelja. |
3 | public void addRecipients(Message.RecipientType type, Address[] addresses) | koristi se za dodavanje zadanih adresa vrsti primatelja. |
4 | public void setSubject(String subject) | koristi se za postavljanje polja zaglavlja predmeta. |
5 | public void setText(string tekstualne poruke) | koristi se za postavljanje teksta kao sadržaja poruke koristeći tekst/običnu MIME vrstu. |
6 | public void setContent(Object msg, String contentType) | koristi se za postavljanje sadržaja kao sadržaja poruke koristeći zadani MIME tip. |
Primjer sastavljanja poruke:
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šaljite poruku
Klasa javax.mail.Transport pruža metodu za slanje poruke. |
Često korištene metode transportne klase
Ne. | metoda | Opis |
1 | javno statično void slanje (poruka poruke) | koristi se poslati poruku. |
2 | javno statično void slanje (poruka poruke, adresa [] adresa) | koristi se za slanje poruke na zadane adrese. |
Primjer slanja poruke:
Transport.send(message);
Jednostavan primjer slanja e-pošte u Javi
U ovom primjeru ćemo naučiti kako poslati e-poštu putem SMTP poslužitelja instaliranog na stroju, npr. Poslužitelj za postcast, Apache James poslužitelj, Cmail poslužitelj itd. Ako želite slati e-poštu koristeći svoj SMTP poslužitelj koji pruža pružatelj usluge hosta, pogledajte primjer nakon ovog. |
Za slanje e-pošte pomoću JavaMail API-ja morate učitati dvije jar datoteke:preuzmite ove jar datoteke ili idite na Oracleovu stranicu da preuzmete najnoviju verziju. |
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();} } }
preuzmite ovaj primjer za slanje e-pošteU ovom primjeru ćemo naučiti kako poslati e-poštu putem SMTP poslužitelja instaliranog na stroju, npr. Poslužitelj za postcast, Apache James poslužitelj, Cmail poslužitelj itd. Ako želite slati e-poštu koristeći svoj SMTP poslužitelj koji pruža pružatelj usluga hosta, pogledajte primjer nakon ovog.
Da biste pokrenuli ovaj primjer, trebate učitati dvije jar datoteke. Postoje 4 načina za učitavanje jar datoteke. Jedan od načina je set classpath. Pogledajmo kako pokrenuti ovaj primjer:
Učitajte jar datoteku | c:> set classpath=mail.jar;activation.jar;.; |
prevesti izvornu datoteku | c:> javac SendEmail.java |
trčati po | c:> java SendEmail |
Primjer slanja e-pošte u Javi putem SMTP poslužitelja koji pruža pružatelj usluge hostinga
Ako koristite SMTP poslužitelj koji pruža host provider, npr. mail.javatpoint.com , morate provjeriti autentičnost korisničkog imena i lozinke. Klasa javax.mail.PasswordAuthentication koristi se za provjeru autentičnosti lozinke. |
Ako šaljete e-poštu koristeći JavaMail API, učitajte dvije jar datoteke:preuzmite ove jar datoteke ili idite na Oracleovu stranicu da preuzmete najnoviju verziju. |
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();} } }
preuzmite ovaj primjer za slanje e-pošteKao što možete vidjeti u gornjem primjeru, ID korisnika i lozinka moraju biti autentificirani. Kao što ovaj program ilustrira, možete jednostavno poslati e-poštu. U skladu s tim promijenite korisničko ime i lozinku. Pogledajmo kako ga još jednom pokrenuti jednostavnom tehnikom:
Učitajte jar datoteku | c:> set classpath=mail.jar;activation.jar;.; |
prevesti izvornu datoteku | c:> javac SendMailBySite.java |
trčati po | c:> java SendMailBySite |