logo

Trimiterea e-mailului în Java

  1. Trimiterea de e-mail folosind API-ul JavaMail
  2. Pași pentru a trimite e-mailuri folosind JavaMail API
    1. Obțineți obiectul sesiune
    2. Compune mesajul
    3. trimite mesajul
  3. Exemplu simplu de trimitere de e-mail folosind API-ul JavaMail
  4. Exemplu de trimitere de e-mail folosind JavaMail API prin serverul SMTP furnizat de furnizorul gazdă

Există diferite moduri de a trimite e-mailuri folosind JavaMail API. În acest scop, trebuie să aveți un server SMTP care este responsabil să trimită e-mailuri.

Puteți utiliza una dintre următoarele tehnici pentru a obține serverul SMTP:

  • Instalați și utilizați orice server SMTP, cum ar fi serverul Postcast, serverul Apache James, serverul cmail etc. (sau)
  • Utilizați serverul SMTP furnizat de furnizorul gazdă, de ex. serverul meu SMTP este mail.javatpoint.com (sau)
  • Utilizați serverul SMTP furnizat de alte companii, de ex. gmail etc.

Aici, vom învăța mai sus trei abordări pentru a trimite e-mailuri folosind API-ul javamail. Dar ar trebui să învățăm pașii de bază pentru a trimite e-mail din aplicația java.


Pași pentru a trimite e-mailuri folosind JavaMail API

Există următorii trei pași pentru a trimite e-mailuri folosind JavaMail. Acestea sunt după cum urmează:

    Obțineți obiectul sesiunecare stochează toate informațiile despre gazdă, cum ar fi numele gazdei, numele de utilizator, parola etc.compune mesajul trimite mesajul


1) Obțineți obiectul sesiune

The javax.mail.Clasa Session oferă două metode pentru a obține obiectul sesiunii, metoda Session.getDefaultInstance() și metoda Session.getInstance(). Puteți folosi orice metodă pentru a obține obiectul sesiune.

Metoda clasei de sesiune

Nu.MetodăDescriere
1public static Session getDefaultInstance(Properties props)returnează sesiunea implicită.
2public static Session getDefaultInstance (Properties props, Authenticator auth)returnează sesiunea implicită.
3public static Session getInstance(Properties props)returnează noua sesiune.
4public static Session getInstance (Properties props, Authenticator auth)returnează noua sesiune.

Exemplu de metodă getDefaultInstance().

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

Exemplu de metoda getInstance().

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

2) Compune mesajul

Clasa javax.mail.Message oferă metode de compunere a mesajului. Dar este o clasă abstractă, așa că subclasa sa javax.mail.internet.MimeMessage este folosită în cea mai mare parte.
Pentru a crea mesajul, trebuie să treceți obiectul sesiune în constructorul clasei MimeMessage. De exemplu:
 MimeMessage message=new MimeMessage(session); 
Acum obiectul mesaj a fost creat, dar pentru a stoca informații în acest obiect clasa MimeMessage oferă multe metode. Să vedem metodele oferite de clasa MimeMessage:

Metode utilizate în mod obișnuit din clasa MimeMessage

Nu.MetodăDescriere
1public void setFrom(adresă)este folosit pentru a seta câmpul de la antet.
2public void addRecipient(Tipul tip mesaj.Destinatar, adresa adresei)este folosit pentru a adăuga adresa dată tipului de destinatar.
3public void addRecipients(Message.RecipientType type, Address[] addresses)este folosit pentru a adăuga adresele date la tipul de destinatar.
4public void setSubject(Subiect șir)este folosit pentru a seta câmpul antetului subiectului.
5public void setText(String textmessage)este folosit pentru a seta textul ca conținut al mesajului folosind tipul MIME text/pur.
6public void setContent(Object msg, String contentType)este folosit pentru a seta conținutul ca conținut al mesajului folosind tipul MIME dat.

Exemplu de redactare a mesajului:

 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) Trimite mesajul

Clasa javax.mail.Transport oferă metoda de trimitere a mesajului.

Metode utilizate în mod obișnuit din clasa Transport

Nu.MetodăDescriere
1trimitere public static void (mesaj mesaj)este folosit trimite mesajul.
2public static void send (Mesaj mesaj, Adresă[] adresa)este folosit trimite mesajul la adresele date.

Exemplu pentru a trimite mesajul:

 Transport.send(message); 

Exemplu simplu de trimitere de e-mailuri în Java

descărcați aceste fișiere jar sau accesați site-ul Oracle pentru a descărca cea mai recentă versiune.
În acest exemplu, vom învăța cum să trimitem e-mail prin serverul SMTP instalat pe mașină, de ex. Server Postcast, server Apache James, server Cmail etc. Dacă doriți să trimiteți e-mail folosind serverul SMTP furnizat de furnizorul gazdă, vedeți exemplul de după acesta.
Pentru a trimite e-mailul folosind JavaMail API, trebuie să încărcați cele două fișiere jar:
mail.jar
activare.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();} } } 
descărcați acest exemplu pentru a trimite e-mail

În acest exemplu, vom învăța cum să trimitem e-mail prin serverul SMTP instalat pe mașină, de ex. Server Postcast, server Apache James, server Cmail etc. Dacă doriți să trimiteți e-mail folosind serverul SMTP furnizat de furnizorul gazdă, vedeți exemplul de după acesta.

Pentru a rula acest exemplu, trebuie să încărcați două fișiere jar. Există 4 moduri de a încărca fișierul jar. Una dintre modalități este setarea classpath. Să vedem cum să rulăm acest exemplu:

Încărcați fișierul jarc:> set classpath=mail.jar;activation.jar;.;
compilați fișierul sursăc:> javac Trimite e-mail.java
condus dec:> java Trimite e-mail

Exemplu de trimitere de e-mailuri în Java prin serverul SMTP furnizat de furnizorul gazdă

descărcați aceste fișiere jar sau accesați site-ul Oracle pentru a descărca cea mai recentă versiune.
Dacă utilizați serverul SMTP furnizat de furnizorul gazdă, de ex. mail.javatpoint.com , trebuie să autentificați numele de utilizator și parola. Clasa javax.mail.PasswordAuthentication este utilizată pentru autentificarea parolei.
Dacă trimiteți e-mailul folosind JavaMail API, încărcați cele două fișiere jar:
mail.jar
activare.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();} } } 
descărcați acest exemplu pentru a trimite e-mail

După cum puteți vedea în exemplul de mai sus, id-ul de utilizator și parola trebuie să fie autentificate. După cum ilustrează acest program, puteți trimite e-mailuri cu ușurință. Schimbați numele de utilizator și parola în consecință. Să vedem cum să-l rulăm încă o dată printr-o tehnică simplă:

Încărcați fișierul jarc:> set classpath=mail.jar;activation.jar;.;
compilați fișierul sursăc:> javac SendMailBySite.java
condus dec:> java SendMailBySite