- E-pasta sūtīšana, izmantojot JavaMail API
- Darbības, lai nosūtītu e-pastu, izmantojot JavaMail API
- Iegūstiet sesijas objektu
- Sastādiet ziņojumu
- nosūtīt ziņu
- Vienkāršs piemērs e-pasta sūtīšanai, izmantojot JavaMail API
- 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 objektu | kas 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ē. | Metode | Apraksts |
| 1 | publiska statiska sesija getDefaultInstance (īpašību rekvizīti) | atgriež noklusējuma sesiju. |
| 2 | publiska statiska sesijas saņemšana noklusējuma instancē (īpašību rekvizīti, autentifikatora autentifikācija) | atgriež noklusējuma sesiju. |
| 3 | publiska statiska sesijas saņemšanas instancija (īpašību rekvizīti) | atgriež jauno sesiju. |
| 4 | publiska 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ē. | Metode | Apraksts |
| 1 | public Void setFrom (adreses adrese) | tiek izmantots, lai iestatītu lauku no galvenes. |
| 2 | public void addRecipient(Ziņojuma.RecipientType tips, Adreses adrese) | tiek izmantots, lai adresāta tipam pievienotu doto adresi. |
| 3 | public Void addRecipients (Ziņojuma.RecipientType tips, Address[] adreses) | tiek izmantots, lai adresāta tipam pievienotu norādītās adreses. |
| 4 | public void setSubject (virknes priekšmets) | tiek izmantots, lai iestatītu tēmas galvenes lauku. |
| 5 | public void setText (virknes teksta ziņojums) | tiek izmantots, lai iestatītu tekstu kā ziņojuma saturu, izmantojot teksta/vienkāršā MIME veidu. |
| 6 | public 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ē. | Metode | Apraksts |
| 1 | publiska statiska tukša sūtīšana (ziņas ziņojums) | tiek izmantots, nosūtiet ziņu. |
| 2 | publiska 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
| Š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 | lejupielādējiet šos jar failus vai dodieties uz Oracle vietni, lai lejupielādētu jaunāko versiju. |
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 failu | c:> set classpath=mail.jar;activation.jar;.; |
| kompilējiet avota failu | c:> javac SendEmail.java |
| skrien garām | c:> java SendEmail |
Piemērs e-pasta sūtīšanai Java valodā, izmantojot SMTP serveri, ko nodrošina resursdatora nodrošinātājs
| 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 | lejupielādējiet šos jar failus vai dodieties uz Oracle vietni, lai lejupielādētu jaunāko versiju. |
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-pastuKā 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 failu | c:> set classpath=mail.jar;activation.jar;.; |
| kompilējiet avota failu | c:> javac SendMailBySite.java |
| skrien garām | c:> java SendMailBySite |