- Invio di e-mail utilizzando l'API JavaMail
- Passaggi per inviare e-mail utilizzando l'API JavaMail
- Ottieni l'oggetto della sessione
- Componi il messaggio
- inviare il messaggio
- Semplice esempio di invio di e-mail utilizzando l'API JavaMail
- 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 sessione | che 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. | Metodo | Descrizione |
1 | Sessione statica pubblica getDefaultInstance (proprietà delle proprietà) | restituisce la sessione predefinita. |
2 | Sessione statica pubblica getDefaultInstance (proprietà prop, autenticazione autenticatore) | restituisce la sessione predefinita. |
3 | Sessione statica pubblica getInstance (proprietà delle proprietà) | restituisce la nuova sessione. |
4 | Sessione 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. | Metodo | Descrizione |
1 | public void setFrom(Indirizzo indirizzo) | viene utilizzato per impostare il campo dell'intestazione from. |
2 | public void addRecipient(tipoMessage.RecipientType, indirizzo indirizzo) | viene utilizzato per aggiungere l'indirizzo fornito al tipo di destinatario. |
3 | public void addRecipients(tipo Message.RecipientType, indirizzi Address[]) | viene utilizzato per aggiungere gli indirizzi specificati al tipo di destinatario. |
4 | public void setSubject(Oggetto stringa) | viene utilizzato per impostare il campo dell'intestazione dell'oggetto. |
5 | public void setText(String messaggio di testo) | viene utilizzato per impostare il testo come contenuto del messaggio utilizzando il tipo MIME text/plain. |
6 | public 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. | Metodo | Descrizione |
1 | invio pubblico statico vuoto (messaggio messaggio) | viene utilizzato per inviare il messaggio. |
2 | public 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
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:scarica questi file jar o vai al sito Oracle per scaricare la versione più recente. |
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-mailIn 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 jar | c:> imposta classpath=mail.jar;attivazione.jar;.; |
compilare il file sorgente | c:> javac InviaE-mail.java |
gestita da | c:> java Invia email |
Esempio di invio di posta elettronica in Java tramite server SMTP fornito dal provider host
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:scarica questi file jar o vai al sito Oracle per scaricare la versione più recente. |
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-mailCome 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 jar | c:> imposta classpath=mail.jar;attivazione.jar;.; |
compilare il file sorgente | c:> javac SendMailBySite.java |
gestita da | c:> java SendMailBySite |