logo

Pošiljanje e-pošte v Javi

  1. Pošiljanje e-pošte z uporabo JavaMail API
  2. Koraki za pošiljanje e-pošte z uporabo JavaMail API
    1. Pridobite predmet seje
    2. Sestavite sporočilo
    3. pošljite sporočilo
  3. Preprost primer pošiljanja e-pošte z uporabo API-ja JavaMail
  4. Primer pošiljanja e-pošte z uporabo API-ja JavaMail prek strežnika SMTP, ki ga zagotavlja ponudnik gostitelja

Obstaja več načinov za pošiljanje e-pošte z uporabo JavaMail API. V ta namen morate imeti strežnik SMTP, ki je odgovoren za pošiljanje pošte.

Za pridobitev strežnika SMTP lahko uporabite eno od naslednjih tehnik:

  • Namestite in uporabite kateri koli strežnik SMTP, kot je strežnik Postcast, strežnik Apache James, strežnik cmail itd. (ali)
  • Uporabite strežnik SMTP, ki ga nudi ponudnik gostitelja, npr. moj strežnik SMTP je mail.javatpoint.com (ali)
  • Uporabite strežnik SMTP, ki ga nudijo druga podjetja, npr. gmail itd.

Tukaj se bomo naučili zgornjih treh pristopov za pošiljanje e-pošte z uporabo javamail API-ja. Vendar bi se morali naučiti osnovnih korakov za pošiljanje e-pošte iz aplikacije Java.


Koraki za pošiljanje e-pošte z uporabo API-ja JavaMail

Za pošiljanje e-pošte z uporabo JavaMail sledite trem korakom. So naslednji:

    Pridobite predmet sejeki hrani vse podatke o gostitelju, kot so ime gostitelja, uporabniško ime, geslo itd.sestavite sporočilo pošljite sporočilo


1) Pridobite objekt seje

The javax.mail.Razred seje ponuja dve metodi za pridobivanje predmeta seje, metodo Session.getDefaultInstance() in metodo Session.getInstance(). Za pridobitev objekta seje lahko uporabite katero koli metodo.

Metoda sejnega razreda

št.MetodaOpis
1javna statična seja getDefaultInstance(Lastnosti rekviziti)vrne privzeto sejo.
2javna statična seja getDefaultInstance(Properties props,Authenticator auth)vrne privzeto sejo.
3javna statična seja getInstance(Lastnosti rekviziti)vrne novo sejo.
4javna statična seja getInstance(lastnosti rekviziti,avtentifikator)vrne novo sejo.

Primer metode getDefaultInstance().

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

Primer metode getInstance().

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

2) Sestavite sporočilo

Razred javax.mail.Message ponuja metode za sestavljanje sporočila. Je pa abstrakten razred, zato se večinoma uporablja njegov podrazred javax.mail.internet.MimeMessage class.
Če želite ustvariti sporočilo, morate posredovati objekt seje v konstruktorju razreda MimeMessage. Na primer:
 MimeMessage message=new MimeMessage(session); 
Zdaj je bil objekt sporočila ustvarjen, vendar za shranjevanje informacij v tem objektu razred MimeMessage ponuja številne metode. Oglejmo si metode, ki jih ponuja razred MimeMessage:

Pogosto uporabljene metode razreda MimeMessage

št.MetodaOpis
1javni void setFrom(naslov naslova)se uporablja za nastavitev polja glave iz.
2public void addRecipient(Message.RecipientType type, Address address)se uporablja za dodajanje danega naslova vrsti prejemnika.
3public void addRecipients(Message.RecipientType type, Address[] addresses)se uporablja za dodajanje danih naslovov vrsti prejemnika.
4public void setSubject(String subject)se uporablja za nastavitev polja glave zadeve.
5public void setText(niz besedilnega sporočila)se uporablja za nastavitev besedila kot vsebine sporočila z uporabo vrste besedilo/navadni MIME.
6public void setContent(Object msg, String contentType)se uporablja za nastavitev vsebine kot vsebine sporočila z uporabo podane vrste MIME.

Primer sestavljanja sporočila:

 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šljite sporočilo

Razred javax.mail.Transport nudi metodo za pošiljanje sporočila.

Pogosto uporabljene metode transportnega razreda

št.MetodaOpis
1javno statično void pošiljanje (sporočilo sporočila)se uporablja za pošiljanje sporočila.
2javno statično void pošiljanje (sporočilo sporočila, naslov[] naslov)se uporablja za pošiljanje sporočila na podane naslove.

Primer pošiljanja sporočila:

 Transport.send(message); 

Preprost primer pošiljanja elektronske pošte v Javi

prenesite te datoteke jar ali pojdite na spletno mesto Oracle, da prenesete najnovejšo različico.
V tem primeru se bomo naučili, kako poslati e-pošto s strežnikom SMTP, nameščenim na napravi, npr. Strežnik za postcast, strežnik Apache James, strežnik Cmail itd. Če želite poslati e-pošto s strežnikom SMTP, ki ga nudi ponudnik gostitelja, si oglejte primer za tem.
Za pošiljanje e-pošte z uporabo API-ja JavaMail morate naložiti dve datoteki jar:
mail.jar
activation.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();} } } 
prenesite ta primer za pošiljanje e-pošte

V tem primeru se bomo naučili, kako poslati e-pošto s strežnikom SMTP, nameščenim na napravi, npr. Strežnik Postcast, strežnik Apache James, strežnik Cmail itd. Če želite poslati e-pošto s strežnikom SMTP, ki ga nudi ponudnik gostitelja, si oglejte primer za tem.

Če želite zagnati ta primer, morate naložiti dve datoteki jar. Datoteko jar lahko naložite na 4 načine. Eden od načinov je nastavitev razredne poti. Poglejmo, kako zagnati ta primer:

Naložite datoteko jarc:> set classpath=mail.jar;activation.jar;.;
prevedite izvorno datotekoc:> javac SendEmail.java
teči mimoc:> java SendEmail

Primer pošiljanja e-pošte v Javi prek strežnika SMTP, ki ga zagotavlja ponudnik gostitelja

prenesite te datoteke jar ali pojdite na spletno mesto Oracle, da prenesete najnovejšo različico.
Če uporabljate strežnik SMTP, ki ga nudi ponudnik gostitelja, npr. mail.javatpoint.com morate potrditi uporabniško ime in geslo. Razred javax.mail.PasswordAuthentication se uporablja za preverjanje pristnosti gesla.
Če pošiljate e-pošto z JavaMail API, naložite dve datoteki jar:
mail.jar
activation.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();} } } 
prenesite ta primer za pošiljanje e-pošte

Kot lahko vidite v zgornjem primeru, je treba ID uporabnika in geslo preveriti. Kot prikazuje ta program, lahko preprosto pošljete e-pošto. Ustrezno spremenite uporabniško ime in geslo. Poglejmo, kako ga znova zagnati s preprosto tehniko:

Naložite datoteko jarc:> set classpath=mail.jar;activation.jar;.;
prevedite izvorno datotekoc:> javac SendMailBySite.java
teči mimoc:> java SendMailBySite