- 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 |