logo

E-pasta sūtīšana Java valodā

  1. E-pasta sūtīšana, izmantojot JavaMail API
  2. Darbības, lai nosūtītu e-pastu, izmantojot JavaMail API
    1. Iegūstiet sesijas objektu
    2. Sastādiet ziņojumu
    3. nosūtīt ziņu
  3. Vienkāršs piemērs e-pasta sūtīšanai, izmantojot JavaMail API
  4. Piemērs e-pasta sūtīšanai, izmantojot JavaMail API, izmantojot SMTP serveri, ko nodrošina resursdatora nodrošinātājs

Ir dažādi veidi, kā nosūtīt e-pastu, izmantojot JavaMail API. Šim nolūkam jums ir jābūt SMTP serverim, kas ir atbildīgs par pasta sūtīšanu.

Lai iegūtu SMTP serveri, varat izmantot kādu no šīm metodēm:

  • Instalējiet un izmantojiet jebkuru SMTP serveri, piemēram, Postcast serveri, Apache James serveri, cmail serveri utt. (vai)
  • Izmantojiet saimniekdatora nodrošinātāja nodrošināto SMTP serveri, piemēram, mans SMTP serveris ir mail.javatpoint.com (vai)
  • Izmantojiet citu uzņēmumu nodrošināto SMTP serveri, piem. gmail utt.

Šeit mēs apgūsim iepriekš minētās trīs pieejas e-pasta sūtīšanai, izmantojot Javamail API. Bet mums vajadzētu uzzināt pamata darbības, lai nosūtītu e-pastu no Java lietojumprogrammas.


Darbības, lai nosūtītu e-pastu, izmantojot JavaMail API

Lai nosūtītu e-pastu, izmantojot JavaMail, ir jāveic trīs darbības. Tie ir šādi:

    Iegūstiet sesijas objektukas saglabā visu resursdatora informāciju, piemēram, resursdatora nosaukumu, lietotājvārdu, paroli utt.sastādīt ziņojumu nosūtīt ziņu


1) Iegūstiet sesijas objektu

The javax.mail.Sesijas klase nodrošina divas metodes, lai iegūtu sesijas objektu, metodi Session.getDefaultInstance() un metodi Session.getInstance(). Sesijas objekta iegūšanai varat izmantot jebkuru metodi.

Sesijas klases metode

Nē.MetodeApraksts
1publiska statiska sesija getDefaultInstance (īpašību rekvizīti)atgriež noklusējuma sesiju.
2publiska statiska sesijas saņemšana noklusējuma instancē (īpašību rekvizīti, autentifikatora autentifikācija)atgriež noklusējuma sesiju.
3publiska statiska sesijas saņemšanas instancija (īpašību rekvizīti)atgriež jauno sesiju.
4publiska statiskā sesijas saņemšanas instance (īpašību rekvizīti, autentifikatora autentifikācija)atgriež jauno sesiju.

GetDefaultInstance() metodes piemērs

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

GetInstance() metodes piemērs

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

2) Izveidojiet ziņojumu

Klase javax.mail.Message nodrošina ziņojuma sastādīšanas metodes. Bet tā ir abstrakta klase, tāpēc galvenokārt tiek izmantota tās apakšklase javax.mail.internet.MimeMessage.
Lai izveidotu ziņojumu, MimeMessage klases konstruktorā ir jānodod sesijas objekts. Piemēram:
 MimeMessage message=new MimeMessage(session); 
Tagad ir izveidots ziņojuma objekts, bet informācijas glabāšanai šajā objektā MimeMessage klase nodrošina daudzas metodes. Apskatīsim metodes, ko nodrošina klase MimeMessage:

Bieži izmantotās MimeMessage klases metodes

Nē.MetodeApraksts
1public Void setFrom (adreses adrese)tiek izmantots, lai iestatītu lauku no galvenes.
2public void addRecipient(Ziņojuma.RecipientType tips, Adreses adrese)tiek izmantots, lai adresāta tipam pievienotu doto adresi.
3public Void addRecipients (Ziņojuma.RecipientType tips, Address[] adreses)tiek izmantots, lai adresāta tipam pievienotu norādītās adreses.
4public void setSubject (virknes priekšmets)tiek izmantots, lai iestatītu tēmas galvenes lauku.
5public void setText (virknes teksta ziņojums)tiek izmantots, lai iestatītu tekstu kā ziņojuma saturu, izmantojot teksta/vienkāršā MIME veidu.
6public void setContent (Objekta ziņojums, Virknes satura veids)tiek izmantots, lai iestatītu saturu kā ziņojuma saturu, izmantojot doto MIME veidu.

Piemērs ziņojuma sastādīšanai:

 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) Nosūtiet ziņu

Klase javax.mail.Transport nodrošina ziņojuma nosūtīšanas metodi.

Bieži lietotās Transporta klases metodes

Nē.MetodeApraksts
1publiska statiska tukša sūtīšana (ziņas ziņojums)tiek izmantots, nosūtiet ziņu.
2publiska statiska nederīga sūtīšana (ziņas ziņojums, adreses[] adrese)tiek izmantots, nosūtiet ziņojumu uz norādītajām adresēm.

Piemērs ziņojuma nosūtīšanai:

 Transport.send(message); 

Vienkāršs piemērs e-pasta sūtīšanai Java

lejupielādējiet šos jar failus vai dodieties uz Oracle vietni, lai lejupielādētu jaunāko versiju.
Šajā piemērā mēs uzzināsim, kā nosūtīt e-pastu, izmantojot iekārtā instalēto SMTP serveri, piemēram, Postcast serveris, Apache James serveris, Cmail serveris utt. Ja vēlaties sūtīt e-pastu, izmantojot SMTP serveri, ko nodrošina resursdatora nodrošinātājs, skatiet piemēru pēc šī.
Lai nosūtītu e-pastu, izmantojot JavaMail API, ir jāielādē divi jar faili:
pasts.jar
aktivizēšana.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();} } } 
lejupielādējiet šo piemēru, lai nosūtītu e-pastu

Šajā piemērā mēs uzzināsim, kā nosūtīt e-pastu, izmantojot iekārtā instalēto SMTP serveri, piemēram, Postcast serveris, Apache James serveris, Cmail serveris utt. Ja vēlaties sūtīt e-pastu, izmantojot SMTP serveri, ko nodrošina resursdatora nodrošinātājs, skatiet piemēru pēc šī.

Lai palaistu šo piemēru, ir jāielādē divi jar faili. Ir 4 veidi, kā ielādēt jar failu. Viens no veidiem ir iestatīt klases ceļu. Apskatīsim, kā palaist šo piemēru:

Ielādējiet jar failuc:> set classpath=mail.jar;activation.jar;.;
kompilējiet avota failuc:> javac SendEmail.java
skrien garāmc:> java SendEmail

Piemērs e-pasta sūtīšanai Java valodā, izmantojot SMTP serveri, ko nodrošina resursdatora nodrošinātājs

lejupielādējiet šos jar failus vai dodieties uz Oracle vietni, lai lejupielādētu jaunāko versiju.
Ja izmantojat SMTP serveri, ko nodrošina resursdatora nodrošinātājs, piem. mail.javatpoint.com, jums ir jāautentificē lietotājvārds un parole. Paroles autentificēšanai tiek izmantota klase javax.mail.PasswordAuthentication.
Ja sūtāt e-pastu, izmantojot JavaMail API, ielādējiet divus jar failus:
pasts.jar
aktivizēšana.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();} } } 
lejupielādējiet šo piemēru, lai nosūtītu e-pastu

Kā redzat iepriekš minētajā piemērā, lietotāja ID un parole ir jāautentificē. Kā parāda šī programma, varat viegli nosūtīt e-pastu. Attiecīgi mainiet lietotājvārdu un paroli. Apskatīsim, kā to vēlreiz palaist ar vienkāršu paņēmienu:

Ielādējiet jar failuc:> set classpath=mail.jar;activation.jar;.;
kompilējiet avota failuc:> javac SendMailBySite.java
skrien garāmc:> java SendMailBySite