logo

Enviament de correu electrònic en Java

  1. Enviament de correu electrònic mitjançant l'API de JavaMail
  2. Passos per enviar correu electrònic mitjançant l'API de JavaMail
    1. Obteniu l'objecte de sessió
    2. Redacta el missatge
    3. enviar el missatge
  3. Exemple senzill d'enviament de correu electrònic mitjançant l'API JavaMail
  4. Exemple d'enviament de correu electrònic mitjançant l'API JavaMail a través del servidor SMTP proporcionat pel proveïdor d'amfitrió

Hi ha diverses maneres d'enviar correu electrònic mitjançant l'API de JavaMail. Per a això, cal disposar d'un servidor SMTP que s'encarrega d'enviar correus.

Podeu utilitzar una de les tècniques següents per obtenir el servidor SMTP:

  • Instal·leu i utilitzeu qualsevol servidor SMTP, com ara el servidor Postcast, el servidor Apache James, el servidor de correu electrònic, etc. (o)
  • Utilitzeu el servidor SMTP proporcionat pel proveïdor d'amfitrió, p. el meu servidor SMTP és mail.javatpoint.com (o)
  • Utilitzeu el servidor SMTP proporcionat per altres empreses, p. gmail, etc.

Aquí, aprendrem els tres enfocaments anteriors per enviar correu electrònic mitjançant l'API javamail. Però hauríem d'aprendre els passos bàsics per enviar correu electrònic des de l'aplicació Java.


Passos per enviar correu electrònic mitjançant l'API de JavaMail

Hi ha tres passos següents per enviar correu electrònic mitjançant JavaMail. Són els següents:

    Obteniu l'objecte de sessióque emmagatzema tota la informació de l'amfitrió com el nom d'amfitrió, nom d'usuari, contrasenya, etc.redactar el missatge enviar el missatge


1) Obteniu l'objecte de sessió

El javax.mail.Session classe proporciona dos mètodes per obtenir l'objecte de la sessió, el mètode Session.getDefaultInstance() i el mètode Session.getInstance(). Podeu utilitzar qualsevol mètode per obtenir l'objecte de sessió.

Mètode de classe de sessió

No.MètodeDescripció
1Sessió estàtica pública getDefaultInstance (propietats de prop)retorna la sessió predeterminada.
2Sessió estàtica pública getDefaultInstance (Propietats de prop, autenticació de l'autenticador)retorna la sessió predeterminada.
3Sessió estàtica pública getInstance (propietats de propietats)torna la nova sessió.
4Sessió estàtica pública getInstance (propietats, autenticació de l'autenticador)torna la nova sessió.

Exemple del mètode getDefaultInstance().

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

Exemple del mètode getInstance().

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

2) Redacta el missatge

La classe javax.mail.Message proporciona mètodes per redactar el missatge. Però és una classe abstracta, de manera que la seva subclasse javax.mail.internet.MimeMessage s'utilitza principalment.
Per crear el missatge, heu de passar l'objecte de sessió al constructor de classes MimeMessage. Per exemple:
 MimeMessage message=new MimeMessage(session); 
Ara s'ha creat l'objecte de missatge, però per emmagatzemar informació en aquest objecte, la classe MimeMessage ofereix molts mètodes. Vegem els mètodes proporcionats per la classe MimeMessage:

Mètodes utilitzats habitualment de la classe MimeMessage

No.MètodeDescripció
1public void setFrom (adreça de l'adreça)s'utilitza per establir el camp de capçalera de.
2public void addRecipient(Tipus de missatge.RecipientType, adreça d'adreça)s'utilitza per afegir l'adreça donada al tipus de destinatari.
3public void addRecipients (Tipus de missatge.RecipientType, Adreça[] adreces)s'utilitza per afegir les adreces donades al tipus de destinatari.
4public void setSubject (assumpte de la cadena)s'utilitza per definir el camp de capçalera de l'assumpte.
5public void setText(String textmessage)s'utilitza per establir el text com a contingut del missatge utilitzant el tipus MIME text/plain.
6public void setContent (Msg d'objecte, String contentType)s'utilitza per establir el contingut com a contingut del missatge utilitzant el tipus MIME donat.

Exemple per redactar el missatge:

 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) Envieu el missatge

La classe javax.mail.Transport proporciona un mètode per enviar el missatge.

Mètodes de classe de transport utilitzats habitualment

No.MètodeDescripció
1enviament de null estàtic públic (missatge del missatge)s'utilitza enviar el missatge.
2Public static void send (missatge del missatge, adreça[] adreça)s'utilitza enviar el missatge a les adreces proporcionades.

Exemple per enviar el missatge:

 Transport.send(message); 

Exemple senzill d'enviament de correu electrònic en Java

descarregueu aquests fitxers jar o aneu al lloc d'Oracle per descarregar la darrera versió.
En aquest exemple, aprendrem a enviar correu electrònic mitjançant el servidor SMTP instal·lat a la màquina, p. Servidor de postcast, servidor Apache James, servidor Cmail, etc. Si voleu enviar correu electrònic mitjançant el vostre servidor SMTP proporcionat pel proveïdor d'amfitrió, vegeu l'exemple posterior a aquest.
Per enviar el correu electrònic mitjançant l'API JavaMail, heu de carregar els dos fitxers jar:
mail.jar
activació.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();} } } 
descarregueu aquest exemple per enviar un correu electrònic

En aquest exemple, aprendrem a enviar correu electrònic mitjançant el servidor SMTP instal·lat a la màquina, p. Servidor de postcast, servidor Apache James, servidor Cmail, etc. Si voleu enviar correu electrònic mitjançant el vostre servidor SMTP proporcionat pel proveïdor d'amfitrió, vegeu l'exemple posterior a aquest.

Per executar aquest exemple, heu de carregar dos fitxers jar. Hi ha 4 maneres de carregar el fitxer jar. Una de les maneres és establir classpath. Vegem com executar aquest exemple:

Carregueu el fitxer jarc:> set classpath=mail.jar;activation.jar;.;
compilar el fitxer fontc:> javac SendEmail.java
córrer perc:> java Enviar correu electrònic

Exemple d'enviament de correu electrònic en Java mitjançant el servidor SMTP proporcionat pel proveïdor d'amfitrió

descarregueu aquests fitxers jar o aneu al lloc d'Oracle per descarregar la darrera versió.
Si utilitzeu el servidor SMTP proporcionat pel proveïdor d'amfitrió, p. mail.javatpoint.com , heu d'autenticar el nom d'usuari i la contrasenya. La classe javax.mail.PasswordAuthentication s'utilitza per autenticar la contrasenya.
Si esteu enviant el correu electrònic mitjançant l'API de JavaMail, carregueu els dos fitxers jar:
mail.jar
activació.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();} } } 
descarregueu aquest exemple per enviar un correu electrònic

Com podeu veure a l'exemple anterior, l'identificador d'usuari i la contrasenya s'han d'autenticar. Com il·lustra aquest programa, podeu enviar correu electrònic fàcilment. Canvieu el nom d'usuari i la contrasenya en conseqüència. Vegem com executar-lo una vegada més amb una tècnica senzilla:

Carregueu el fitxer jarc:> set classpath=mail.jar;activation.jar;.;
compilar el fitxer fontc:> javac SendMailBySite.java
córrer perc:> java SendMailBySite