- Trimiterea de e-mail folosind API-ul JavaMail
- Pași pentru a trimite e-mailuri folosind JavaMail API
- Obțineți obiectul sesiune
- Compune mesajul
- trimite mesajul
- Exemplu simplu de trimitere de e-mail folosind API-ul JavaMail
- 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 sesiune | care 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 |
1 | public static Session getDefaultInstance(Properties props) | returnează sesiunea implicită. |
2 | public static Session getDefaultInstance (Properties props, Authenticator auth) | returnează sesiunea implicită. |
3 | public static Session getInstance(Properties props) | returnează noua sesiune. |
4 | public 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 |
1 | public void setFrom(adresă) | este folosit pentru a seta câmpul de la antet. |
2 | public void addRecipient(Tipul tip mesaj.Destinatar, adresa adresei) | este folosit pentru a adăuga adresa dată tipului de destinatar. |
3 | public void addRecipients(Message.RecipientType type, Address[] addresses) | este folosit pentru a adăuga adresele date la tipul de destinatar. |
4 | public void setSubject(Subiect șir) | este folosit pentru a seta câmpul antetului subiectului. |
5 | public void setText(String textmessage) | este folosit pentru a seta textul ca conținut al mesajului folosind tipul MIME text/pur. |
6 | public 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 |
1 | trimitere public static void (mesaj mesaj) | este folosit trimite mesajul. |
2 | public 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
Î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:descărcați aceste fișiere jar sau accesați site-ul Oracle pentru a descărca cea mai recentă versiune. |
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 jar | c:> set classpath=mail.jar;activation.jar;.; |
compilați fișierul sursă | c:> javac Trimite e-mail.java |
condus de | c:> java Trimite e-mail |
Exemplu de trimitere de e-mailuri în Java prin serverul SMTP furnizat de furnizorul gazdă
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:descărcați aceste fișiere jar sau accesați site-ul Oracle pentru a descărca cea mai recentă versiune. |
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-mailDupă 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 jar | c:> set classpath=mail.jar;activation.jar;.; |
compilați fișierul sursă | c:> javac SendMailBySite.java |
condus de | c:> java SendMailBySite |