- Enviament de correu electrònic mitjançant l'API de JavaMail
- Passos per enviar correu electrònic mitjançant l'API de JavaMail
- Obteniu l'objecte de sessió
- Redacta el missatge
- enviar el missatge
- Exemple senzill d'enviament de correu electrònic mitjançant l'API JavaMail
- 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ètode | Descripció |
1 | Sessió estàtica pública getDefaultInstance (propietats de prop) | retorna la sessió predeterminada. |
2 | Sessió estàtica pública getDefaultInstance (Propietats de prop, autenticació de l'autenticador) | retorna la sessió predeterminada. |
3 | Sessió estàtica pública getInstance (propietats de propietats) | torna la nova sessió. |
4 | Sessió 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ètode | Descripció |
1 | public void setFrom (adreça de l'adreça) | s'utilitza per establir el camp de capçalera de. |
2 | public void addRecipient(Tipus de missatge.RecipientType, adreça d'adreça) | s'utilitza per afegir l'adreça donada al tipus de destinatari. |
3 | public void addRecipients (Tipus de missatge.RecipientType, Adreça[] adreces) | s'utilitza per afegir les adreces donades al tipus de destinatari. |
4 | public void setSubject (assumpte de la cadena) | s'utilitza per definir el camp de capçalera de l'assumpte. |
5 | public void setText(String textmessage) | s'utilitza per establir el text com a contingut del missatge utilitzant el tipus MIME text/plain. |
6 | public 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ètode | Descripció |
1 | enviament de null estàtic públic (missatge del missatge) | s'utilitza enviar el missatge. |
2 | Public 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
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:descarregueu aquests fitxers jar o aneu al lloc d'Oracle per descarregar la darrera versió. |
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ònicEn 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 jar | c:> set classpath=mail.jar;activation.jar;.; |
compilar el fitxer font | c:> javac SendEmail.java |
córrer per | c:> 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ó
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:descarregueu aquests fitxers jar o aneu al lloc d'Oracle per descarregar la darrera versió. |
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ònicCom 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 jar | c:> set classpath=mail.jar;activation.jar;.; |
compilar el fitxer font | c:> javac SendMailBySite.java |
córrer per | c:> java SendMailBySite |