logo

Laiškų siuntimas Java

  1. Laiškų siuntimas naudojant JavaMail API
  2. Veiksmai siųsti el. laišką naudojant JavaMail API
    1. Gaukite seanso objektą
    2. Sudarykite pranešimą
    3. siųsti žinutę
  3. Paprastas el. laiškų siuntimo naudojant JavaMail API pavyzdys
  4. 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.Metodasapibūdinimas
1viešas statinis seansas gauti DefaultInstance (ypatybių rekvizitai)grąžina numatytąją sesiją.
2viešas statinis seansas gauti DefaultInstance (ypatybių rekvizitai, autentifikavimo priemonės autentifikavimas)grąžina numatytąją sesiją.
3vieša statinė seanso gavimo instancija (ypatybių rekvizitai)grąžina naują seansą.
4vieš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.Metodasapibūdinimas
1public void setFrom (adreso adresas)naudojamas antraštės laukui nustatyti.
2public void addGavėjas (Pranešimo. Gavėjo tipo tipas, Adreso adresas)naudojamas norint pridėti nurodytą adresą prie gavėjo tipo.
3public void addRecipients (pranešimo.Gavėjo tipo tipas, Adreso[] adresai)naudojamas duotiems adresams pridėti prie gavėjo tipo.
4public void setSubject (Eilutės tema)naudojamas temos antraštės laukui nustatyti.
5public void setText (eilutės teksto pranešimas)naudojamas tekstui nustatyti kaip pranešimo turinį, naudojant teksto/paprastą MIME tipą.
6public 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.Metodasapibūdinimas
1viešas statinis tuščias siuntimas (pranešimo pranešimas)naudojamas siųsti žinutę.
2vieš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

atsisiųskite šiuos jar failus arba eikite į „Oracle“ svetainę ir atsisiųskite naujausią versiją.
Š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
 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
paleistic:> java SendEmail

El. laiškų siuntimo Java kalba per SMTP serverį, pateiktą prieglobos teikėjo, pavyzdys

atsisiųskite šiuos jar failus arba eikite į „Oracle“ svetainę ir atsisiųskite naujausią versiją.
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
 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 el

Kaip 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
paleistic:> java SendMailBySite