logo

Slanje e-pošte u Javi

  1. Slanje e-pošte pomoću JavaMail API-ja
  2. Koraci za slanje e-pošte pomoću JavaMail API-ja
    1. Dobijte objekt sesije
    2. Sastavite poruku
    3. poslati poruku
  3. Jednostavan primjer slanja e-pošte pomoću JavaMail API-ja
  4. 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 sesijekoji 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.metodaOpis
1javna statička sesija getDefaultInstance(Properties props)vraća zadanu sesiju.
2javna statička sesija getDefaultInstance(Properties props,Authenticator auth)vraća zadanu sesiju.
3javna statička sesija getInstance(Properties props)vraća novu sesiju.
4javna 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.metodaOpis
1public void setFrom(adresa adrese)koristi se za postavljanje polja iz zaglavlja.
2public void addRecipient(Message.RecipientType type, Address address)koristi se za dodavanje zadane adrese vrsti primatelja.
3public void addRecipients(Message.RecipientType type, Address[] addresses)koristi se za dodavanje zadanih adresa vrsti primatelja.
4public void setSubject(String subject)koristi se za postavljanje polja zaglavlja predmeta.
5public void setText(string tekstualne poruke)koristi se za postavljanje teksta kao sadržaja poruke koristeći tekst/običnu MIME vrstu.
6public 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.metodaOpis
1javno statično void slanje (poruka poruke)koristi se poslati poruku.
2javno 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

preuzmite ove jar datoteke ili idite na Oracleovu stranicu da preuzmete najnoviju verziju.
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:
pošta.jar
aktivacija.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();} } } 
preuzmite ovaj primjer za slanje e-pošte

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 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 datotekuc:> set classpath=mail.jar;activation.jar;.;
prevesti izvornu datotekuc:> javac SendEmail.java
trčati poc:> java SendEmail

Primjer slanja e-pošte u Javi putem SMTP poslužitelja koji pruža pružatelj usluge hostinga

preuzmite ove jar datoteke ili idite na Oracleovu stranicu da preuzmete najnoviju verziju.
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:
pošta.jar
aktivacija.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();} } } 
preuzmite ovaj primjer za slanje e-pošte

Kao š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 datotekuc:> set classpath=mail.jar;activation.jar;.;
prevesti izvornu datotekuc:> javac SendMailBySite.java
trčati poc:> java SendMailBySite