logo

Invio di e-mail in Java

  1. Invio di e-mail utilizzando l'API JavaMail
  2. Passaggi per inviare e-mail utilizzando l'API JavaMail
    1. Ottieni l'oggetto della sessione
    2. Componi il messaggio
    3. inviare il messaggio
  3. Semplice esempio di invio di e-mail utilizzando l'API JavaMail
  4. Esempio di invio di posta elettronica utilizzando l'API JavaMail tramite il server SMTP fornito dal provider host

Esistono vari modi per inviare e-mail utilizzando l'API JavaMail. A questo scopo, è necessario disporre di un server SMTP responsabile dell'invio delle e-mail.

È possibile utilizzare una delle seguenti tecniche per ottenere il server SMTP:

conversione del tipo e casting in Java
  • Installa e utilizza qualsiasi server SMTP come server Postcast, server Apache James, server cmail ecc. (o)
  • Utilizzare il server SMTP fornito dal provider host, ad es. il mio server SMTP è mail.javatpoint.com (o)
  • Utilizza il server SMTP fornito da altre società, ad es. Gmail ecc.

Qui impareremo i tre approcci sopra indicati per inviare e-mail utilizzando l'API Javamail. Ma dovremmo imparare i passaggi di base per inviare e-mail dall'applicazione Java.


Passaggi per inviare e-mail utilizzando l'API JavaMail

Di seguito sono riportati i tre passaggi per inviare e-mail utilizzando JavaMail. Sono i seguenti:

    Ottieni l'oggetto della sessioneche memorizza tutte le informazioni dell'host come nome host, nome utente, password ecc.comporre il messaggio inviare il messaggio


1) Ottieni l'oggetto della sessione

IL classe javax.mail.Session fornisce due metodi per ottenere l'oggetto della sessione, il metodo Session.getDefaultInstance() e il metodo Session.getInstance(). È possibile utilizzare qualsiasi metodo per ottenere l'oggetto della sessione.

data corrente in Java

Metodo della lezione in sessione

NO.MetodoDescrizione
1Sessione statica pubblica getDefaultInstance (proprietà delle proprietà)restituisce la sessione predefinita.
2Sessione statica pubblica getDefaultInstance (proprietà prop, autenticazione autenticatore)restituisce la sessione predefinita.
3Sessione statica pubblica getInstance (proprietà delle proprietà)restituisce la nuova sessione.
4Sessione statica pubblica getInstance (proprietà prop, autenticazione autenticatore)restituisce la nuova sessione.

Esempio del metodo getDefaultInstance()

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

Esempio del metodo getInstance()

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

2) Componi il messaggio

La classe javax.mail.Message fornisce metodi per comporre il messaggio. Ma è una classe astratta, quindi viene utilizzata principalmente la sua sottoclasse javax.mail.internet.MimeMessage.
Per creare il messaggio, è necessario passare l'oggetto sessione nel costruttore della classe MimeMessage. Per esempio:
 MimeMessage message=new MimeMessage(session); 
Ora l'oggetto messaggio è stato creato ma per memorizzare le informazioni in questo oggetto la classe MimeMessage fornisce molti metodi. Vediamo i metodi forniti dalla classe MimeMessage:

Metodi comunemente utilizzati della classe MimeMessage

NO.MetodoDescrizione
1public void setFrom(Indirizzo indirizzo)viene utilizzato per impostare il campo dell'intestazione from.
2public void addRecipient(tipoMessage.RecipientType, indirizzo indirizzo)viene utilizzato per aggiungere l'indirizzo fornito al tipo di destinatario.
3public void addRecipients(tipo Message.RecipientType, indirizzi Address[])viene utilizzato per aggiungere gli indirizzi specificati al tipo di destinatario.
4public void setSubject(Oggetto stringa)viene utilizzato per impostare il campo dell'intestazione dell'oggetto.
5public void setText(String messaggio di testo)viene utilizzato per impostare il testo come contenuto del messaggio utilizzando il tipo MIME text/plain.
6public void setContent(Oggetto msg, String contentType)viene utilizzato per impostare il contenuto come contenuto del messaggio utilizzando il tipo MIME specificato.

Esempio per comporre il messaggio:

 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) Invia il messaggio

La classe javax.mail.Transport fornisce il metodo per inviare il messaggio.

Metodi comunemente utilizzati della classe Transport

NO.MetodoDescrizione
1invio pubblico statico vuoto (messaggio messaggio)viene utilizzato per inviare il messaggio.
2public static void send(Messaggio messaggio, Indirizzo[] indirizzo)viene utilizzato inviare il messaggio agli indirizzi indicati.

Esempio per inviare il messaggio:

 Transport.send(message); 

Semplice esempio di invio di posta elettronica in Java

scarica questi file jar o vai al sito Oracle per scaricare la versione più recente.
In questo esempio, impareremo come inviare e-mail tramite il server SMTP installato sulla macchina, ad es. Server Postcast, server Apache James, server Cmail ecc. Se desideri inviare e-mail utilizzando il server SMTP fornito dal provider host, guarda l'esempio successivo a questo.
Per inviare l'e-mail utilizzando JavaMail API, è necessario caricare i due file jar:
mail.jar
attivazione.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();} } } 
scarica questo esempio per inviare e-mail

In questo esempio, impareremo come inviare e-mail tramite il server SMTP installato sulla macchina, ad es. Server Postcast, server Apache James, server Cmail ecc. Se desideri inviare e-mail utilizzando il server SMTP fornito dal provider host, guarda l'esempio successivo a questo.

Per eseguire questo esempio, è necessario caricare due file jar. Esistono 4 modi per caricare il file jar. Uno dei modi è impostare il classpath. Vediamo come eseguire questo esempio:

Carica il file jarc:> imposta classpath=mail.jar;attivazione.jar;.;
compilare il file sorgentec:> javac InviaE-mail.java
gestita dac:> java Invia email

Esempio di invio di posta elettronica in Java tramite server SMTP fornito dal provider host

scarica questi file jar o vai al sito Oracle per scaricare la versione più recente.
Se stai utilizzando il server SMTP fornito dal provider host, ad es. mail.javatpoint.com, è necessario autenticare nome utente e password. La classe javax.mail.PasswordAuthentication viene utilizzata per autenticare la password.
Se stai inviando l'e-mail utilizzando l'API JavaMail, carica i due file jar:
mail.jar
attivazione.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();} } } 
scarica questo esempio per inviare e-mail

Come puoi vedere nell'esempio sopra, l'ID utente e la password devono essere autenticati. Come illustra questo programma, puoi inviare facilmente e-mail. Modificare il nome utente e la password di conseguenza. Vediamo come eseguirlo ancora una volta con una tecnica semplice:

Carica il file jarc:> imposta classpath=mail.jar;attivazione.jar;.;
compilare il file sorgentec:> javac SendMailBySite.java
gestita dac:> java SendMailBySite