Il miglior tutorial e-mail Servlet Invia e-mail Nel 2024, in questo tutorial puoi imparare Invia una semplice e-mail,Invia una e-mail HTML,Invia allegati e-mail,sezione Autenticazione utente,
Manda una e-mail utilizzando il Servlet è molto semplice, ma prima è necessario installareJavaMail API e Java Activation Framework)del computerJAF).
È inoltre possibile utilizzare il sito per fornire link per il download:
Scaricare e decomprimere il file nella directory di livello superiore appena creata, troverete alcuni file jar due applicazioni. È necessario aggiungere i filemail.jar e activation.jaral CLASSPATH.
Gli esempi che seguono inviare una semplice e-mail dal computer. Questo presuppone chel'host locale è collegata al supporto di Internet ed e-mail.Garantendo nel contempo che i pacchetti Email API Java e pacchetto JAF tutti i file jar nel percorso di classe sono disponibili.
// Nome file SendEmail.java import java.io. *; import java.util * .; import javax.servlet * .; import javax.servlet.http * .; import javax.mail * .; import javax.mail.internet * .; import javax.activation * .; public class SendEmail estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // ID e-mail del destinatario String a = "abcd@gmail.com"; // E-mail ID del mittente String da = "web@gmail.com"; // Diciamo che si invia host di posta elettronica String = "localhost" dall'host locale; // Ottenere le proprietà di sistema proprietà = System.getProperties (); // Impostare un properties.setProperty server di posta ( "mail.smtp.host", ospite); // Ottenere la sessione predefinita dell'oggetto Session Session = Session.getDefaultInstance (proprietà); // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); try { // Crea un default MIMEMessage oggetti MIMEMessage messaggio = new MIMEMessage (sessione); // Imposta il campo Da: intestazione dell'intestazione. message.setFrom (nuova InternetAddress (da)); // Impostato su: campo di intestazione dell'intestazione. message.addRecipient (Message.RecipientType.TO, nuova InternetAddress (a)); // Imposta il Oggetto: campo di intestazione message.setSubject ( "Questa è la riga dell'oggetto!"); // Ora impostare il messaggio effettivo message.setText ( "Questo è il messaggio vero e proprio"); // Invia il messaggio Transport.send (messaggio); Titolo String = "email"; res String = "inviare correttamente i messaggi it."; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + titolo + "</ h1> \ n" + "<P align = \" centro \ ">" + res + "</ p> \ n" + "</ Body> </ html>"); } Catch (MessagingException mex) { mex.printStackTrace (); } } }
Ora cerchiamo di compilare il Servlet sopra, e creare la seguente voce nel file web.xml:
itit <Servlet> <Servlet-name> SendEmail </ servlet-name> <Servlet-class> SendEmail </ servlet-class> </ Servlet> <Servlet-mapping> <Servlet-name> SendEmail </ servlet-name> <Url-pattern> / SendEmail </ url-pattern> </ Servlet-mapping> itit
Ora visitando l'URL http: // localhost: 8080 / SendEmail chiamare questo Servlet. Questo invierà una e-mail ad un datoIDe-mail abcd@gmail.com, e apparirà come mostrato nella seguente risposta:
Invia e-mailinviato con successo un messaggio it. |
Se si desidera inviare una e-mail a più destinatari, utilizzare i seguenti metodi per specificare più ID e-mail:
AddRecipients vuoto (tipo Message.RecipientType, Indirizzo [] indirizzi) getta MessagingException
Quanto segue è una descrizione dei parametri:
Il seguente esempio inviare una e-mail in formato HTML sul computer. Questo presuppone chel'host locale è collegata al supporto di Internet ed e-mail.Garantendo nel contempo che i pacchetti Email API Java e pacchetto JAF tutti i file jar nel percorso di classe sono disponibili.
Questo esempio è molto simile agli esempi precedenti, ma qui usiamo setContent () per impostare il secondo parametro è contenuto "text / html", questo parametro viene utilizzato per specificare il contenuto HTML contenuto nel messaggio.
Usando questo esempio, è possibile inviare il contenuto non è limitato alla dimensione del contenuto HTML.
// Nome file SendEmail.java import java.io. *; import java.util * .; import javax.servlet * .; import javax.servlet.http * .; import javax.mail * .; import javax.mail.internet * .; import javax.activation * .; public class SendEmail estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // ID e-mail del destinatario String a = "abcd@gmail.com"; // E-mail ID del mittente String da = "web@gmail.com"; // Diciamo che si invia host di posta elettronica String = "localhost" dall'host locale; // Ottenere le proprietà di sistema proprietà = System.getProperties (); // Impostare un properties.setProperty server di posta ( "mail.smtp.host", ospite); // Ottenere la sessione predefinita dell'oggetto Session Session = Session.getDefaultInstance (proprietà); // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); try { // Crea un default MIMEMessage oggetti MIMEMessage messaggio = new MIMEMessage (sessione); // Imposta il campo Da: intestazione dell'intestazione. message.setFrom (nuova InternetAddress (da)); // Impostato su: campo di intestazione dell'intestazione. message.addRecipient (Message.RecipientType.TO, nuova InternetAddress (a)); // Imposta il Oggetto: campo di intestazione message.setSubject ( "Questa è la riga dell'oggetto!"); // Imposta il messaggio HTML dimensione del contenuto message.setContent limitate reale ( "<h1> Questo è il messaggio vero e proprio </ h1>", "Text / html"); // Invia il messaggio Transport.send (messaggio); Titolo String = "email"; res String = "inviare correttamente i messaggi it."; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + titolo + "</ h1> \ n" + "<P align = \" centro \ ">" + res + "</ p> \ n" + "</ Body> </ html>"); } Catch (MessagingException mex) { mex.printStackTrace (); } } }
Compilare ed eseguire il Servlet sopra, inviare messaggi HTML su un dato ID e-mail.
Gli esempi che seguono inviare una e-mail con un allegato sul computer sarà. Questo presuppone chel'host locale è collegata al supporto di Internet ed e-mail.Garantendo nel contempo che i pacchetti Email API Java e pacchetto JAF tutti i file jar nel percorso di classe sono disponibili.
// Nome file SendEmail.java import java.io. *; import java.util * .; import javax.servlet * .; import javax.servlet.http * .; import javax.mail * .; import javax.mail.internet * .; import javax.activation * .; public class SendEmail estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // ID e-mail del destinatario String a = "abcd@gmail.com"; // E-mail ID del mittente String da = "web@gmail.com"; // Diciamo che si invia host di posta elettronica String = "localhost" dall'host locale; // Ottenere le proprietà di sistema proprietà = System.getProperties (); // Impostare un properties.setProperty server di posta ( "mail.smtp.host", ospite); // Ottenere la sessione predefinita dell'oggetto Session Session = Session.getDefaultInstance (proprietà); // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); try { // Crea un default MIMEMessage oggetti MIMEMessage messaggio = new MIMEMessage (sessione); // Imposta il campo Da: intestazione dell'intestazione. message.setFrom (nuova InternetAddress (da)); // Impostato su: campo di intestazione dell'intestazione. message.addRecipient (Message.RecipientType.TO, nuova InternetAddress (a)); // Imposta il Oggetto: campo di intestazione message.setSubject ( "Questa è la riga dell'oggetto!"); // Creare una parte messaggio BodyPart messageBodyPart = new MimeBodyPart (); // Compilare un messaggio messageBodyPart.setText ( "Questo è il testo del messaggio"); // Creazione di un messaggio in più parti multipart Multipart = new MimeMultipart (); // Imposta parti del messaggio di testo multipart.addBodyPart (messageBodyPart); // La seconda parte è un accessorio messageBodyPart = new MimeBodyPart (); String filename = "file.txt"; fonte DataSource = new FileDataSource (nome del file); messageBodyPart.setDataHandler (nuova DataHandler (fonte)); messageBodyPart.setFileName (nome del file); multipart.addBodyPart (messageBodyPart); // Invia un completo message.setContent messaggio parte (multipart); // Invia il messaggio Transport.send (messaggio); Titolo String = "email"; res String = "inviare con successo e-mail it."; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + titolo + "</ h1> \ n" + "<P align = \" centro \ ">" + res + "</ p> \ n" + "</ Body> </ html>"); } Catch (MessagingException mex) { mex.printStackTrace (); } } }
Compilare ed eseguire il Servlet sopra, inviare messaggi con allegati i file su un dato ID e-mail.
Se è necessario fornire l'autenticazione e-mail ID utente del server e la password, è possibile impostare le seguenti proprietà:
props.setProperty ( "mail.user", "myuser"); props.setProperty ( "mail.password", "MyPwd");
Il resto del meccanismo di consegna di posta elettronica è in linea con quanto sopra spiegare.