- Laiškų siuntimas naudojant JavaMail API
- Veiksmai siųsti el. laišką naudojant JavaMail API
- Gaukite seanso objektą
- Sudarykite pranešimą
- siųsti žinutę
- Paprastas el. laiškų siuntimo naudojant JavaMail API pavyzdys
- El. laiškų siuntimo naudojant JavaMail API per prieglobos teikėjo pateiktą SMTP serverį pavyzdys
Yra įvairių būdų siųsti el. laiškus naudojant JavaMail API. Šiuo tikslu turite turėti SMTP serverį, kuris būtų atsakingas už laiškų siuntimą.
Norėdami gauti SMTP serverį, galite naudoti vieną iš šių būdų:
struktūros masyvas c kalba
- Įdiekite ir naudokite bet kurį SMTP serverį, pvz., Postcast serverį, Apache James serverį, cmail serverį ir tt (arba)
- Naudokite prieglobos teikėjo pateiktą SMTP serverį pvz. mano SMTP serveris yra mail.javatpoint.com (arba)
- Naudokite kitų įmonių teikiamą SMTP serverį pvz. gmail ir pan.
Čia mes išmoksime tris aukščiau nurodytus būdus, kaip siųsti el. laišką naudojant „Javamail“ API. Tačiau turėtume išmokti pagrindinių veiksmų, kaip siųsti el. laišką iš „Java“ programos.
Veiksmai siųsti el. laišką naudojant JavaMail API
Norėdami siųsti el. laišką naudodami „JavaMail“, atlikite šiuos tris veiksmus. Jie yra tokie:
Gaukite seanso objektą | kuri saugo visą pagrindinio kompiuterio informaciją, pvz., pagrindinio kompiuterio pavadinimą, vartotojo vardą, slaptažodį ir kt.
parašyti pranešimą |
siųsti žinutę |
1) Gaukite seanso objektą
The javax.mail.Sesijos klasė pateikia du metodus seanso objektui gauti: metodą Session.getDefaultInstance() ir metodą Session.getInstance(). Seanso objektui gauti galite naudoti bet kurį metodą.
Sesijos klasės metodas
Nr. | Metodas | apibūdinimas |
1 | viešas statinis seansas gauti DefaultInstance (ypatybių rekvizitai) | grąžina numatytąją sesiją. |
2 | viešas statinis seansas gauti DefaultInstance (ypatybių rekvizitai, autentifikavimo priemonės autentifikavimas) | grąžina numatytąją sesiją. |
3 | vieša statinė seanso gavimo instancija (ypatybių rekvizitai) | grąžina naują seansą. |
4 | vieša statinė seanso gavimo instancija (ypatybių rekvizitai, autentifikavimo priemonės autentifikavimas) | grąžina naują seansą. |
GetDefaultInstance() metodo pavyzdys
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
GetInstance() metodo pavyzdys
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) Sudarykite pranešimą
Klasė javax.mail.Message pateikia pranešimo sudarymo metodus. Tačiau tai yra abstrakti klasė, todėl dažniausiai naudojama jos poklasis javax.mail.internet.MimeMessage. |
Norėdami sukurti pranešimą, MimeMessage klasės konstruktoriuje turite perduoti seanso objektą. Pavyzdžiui: |
MimeMessage message=new MimeMessage(session);
Dabar pranešimo objektas buvo sukurtas, tačiau informacijai saugoti šiame objekte MimeMessage klasė suteikia daug būdų. Pažiūrėkime MimeMessage klasės pateiktus metodus: |
Dažniausiai naudojami MimeMessage klasės metodai
Nr. | Metodas | apibūdinimas |
1 | public void setFrom (adreso adresas) | naudojamas antraštės laukui nustatyti. |
2 | public void addGavėjas (Pranešimo. Gavėjo tipo tipas, Adreso adresas) | naudojamas norint pridėti nurodytą adresą prie gavėjo tipo. |
3 | public void addRecipients (pranešimo.Gavėjo tipo tipas, Adreso[] adresai) | naudojamas duotiems adresams pridėti prie gavėjo tipo. |
4 | public void setSubject (Eilutės tema) | naudojamas temos antraštės laukui nustatyti. |
5 | public void setText (eilutės teksto pranešimas) | naudojamas tekstui nustatyti kaip pranešimo turinį, naudojant teksto/paprastą MIME tipą. |
6 | public void setContent (objekto žinutė, eilutės turinio tipas) | naudojamas nustatant turinį kaip pranešimo turinį, naudojant nurodytą MIME tipą. |
Pavyzdys, kaip sudaryti pranešimą:
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) Išsiųskite žinutę
Klasė javax.mail.Transport suteikia pranešimo siuntimo būdą. |
Dažniausiai naudojami Transporto klasės metodai
Nr. | Metodas | apibūdinimas |
1 | viešas statinis tuščias siuntimas (pranešimo pranešimas) | naudojamas siųsti žinutę. |
2 | viešas statinis tuščias siuntimas (pranešimo žinutė, adreso[] adresas) | naudojamas siųsti žinutę nurodytais adresais. |
Pranešimo siuntimo pavyzdys:
Transport.send(message);
Paprastas el. laiškų siuntimo Java programa pavyzdys
Šiame pavyzdyje mes sužinosime, kaip siųsti el. laiškus naudojant įrenginyje įdiegtą SMTP serverį, pvz. „Postcast“ serveris, „Apache James“ serveris, „Cmail“ serveris ir tt Jei norite siųsti el. laišką naudodami SMTP serverį, kurį teikia prieglobos teikėjas, žr. pavyzdį po šio. |
Norėdami siųsti el. laišką naudodami JavaMail API, turite įkelti du jar failus: paštas.jar | aktyvinimas.jar | atsisiųskite šiuos jar failus arba eikite į „Oracle“ svetainę ir atsisiųskite naujausią versiją. |
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();} } }
atsisiųskite šį pavyzdį, kad išsiųstumėte elŠiame pavyzdyje mes sužinosime, kaip siųsti el. laiškus naudojant įrenginyje įdiegtą SMTP serverį, pvz. „Postcast“ serveris, „Apache James“ serveris, „Cmail“ serveris ir tt Jei norite siųsti el. laišką naudodami SMTP serverį, kurį teikia prieglobos teikėjas, žr. pavyzdį po šio.
Norėdami paleisti šį pavyzdį, turite įkelti du jar failus. Yra 4 būdai įkelti jar failą. Vienas iš būdų yra nustatyti klasės kelią. Pažiūrėkime, kaip paleisti šį pavyzdį:
Įkelkite jar failą | c:> set classpath=mail.jar;activation.jar;.; |
sukompiliuoti šaltinio failą | c:> javac SendEmail.java |
paleisti | c:> java SendEmail |
El. laiškų siuntimo Java kalba per SMTP serverį, pateiktą prieglobos teikėjo, pavyzdys
Jei naudojate prieglobos teikėjo pateiktą SMTP serverį, pvz. mail.javatpoint.com , turite patvirtinti vartotojo vardą ir slaptažodį. Klasė javax.mail.PasswordAuthentication naudojama slaptažodžiui autentifikuoti. |
Jei el. laišką siunčiate naudodami JavaMail API, įkelkite du jar failus: paštas.jar | aktyvinimas.jar | atsisiųskite šiuos jar failus arba eikite į „Oracle“ svetainę ir atsisiųskite naujausią versiją. |
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();} } }
atsisiųskite šį pavyzdį, kad išsiųstumėte elKaip matote aukščiau pateiktame pavyzdyje, vartotojo ID ir slaptažodis turi būti autentifikuoti. Kaip rodo ši programa, galite lengvai siųsti el. Atitinkamai pakeiskite vartotojo vardą ir slaptažodį. Pažiūrėkime, kaip dar kartą jį paleisti paprasta technika:
Įkelkite jar failą | c:> set classpath=mail.jar;activation.jar;.; |
sukompiliuoti šaltinio failą | c:> javac SendMailBySite.java |
paleisti | c:> java SendMailBySite |