Latest web development tutorials

e-mail Servlet

Manda una e-mail utilizzando il Servlet è molto semplice, ma prima è necessario installareJavaMail API e Java Activation Framework)del computerJAF).

  • È possibile scaricare l'ultima versione di Java del JavaMail , aprire la parte destra della pagina c'è un link Download, cliccaci sopra per scaricare.
  • È possibile scaricare l'ultima versione di Java (versione 1.1.1) JAF .

È 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.

Invia una semplice e-mail

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 = "[email protected]";
 
      // E-mail ID del mittente
      String da = "[email protected]";
 
      // 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 ...";
         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:

....
 <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>
....

Ora visitando l'URL http: // localhost: 8080 / SendEmail chiamare questo Servlet. Questo invierà una e-mail ad un datoIDe-mail [email protected], e apparirà come mostrato nella seguente risposta:

Invia e-mail

inviato con successo un messaggio ...

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:

  • Tipo: Questo sarà impostato come A, CC o BCC.Qui, CC a nome di CC, BCC BCC rappresentanti. Per esempioMessage.RecipientType.TO.
  • indirizzi: Questo è un array di ID e-mail.Quando si specifica ID e-mail, è necessario utilizzare il metodo InternetAddress ().

Invia una e-mail HTML

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 = "[email protected]";
 
      // E-mail ID del mittente
      String da = "[email protected]";
 
      // 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 ...";
         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.

Invia allegati 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 = "[email protected]";
 
      // E-mail ID del mittente
      String da = "[email protected]";
 
      // 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 ...";
         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.

sezione Autenticazione utente

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.