Latest web development tutorials

e-mail servlet

Enviar um e-mail usando o Servlet é muito simples, mas primeiro você deve instalarJavaMail API e do Quadro de ativação Java)em seu computadorJAF).

  • Você pode baixar a última versão do Java do JavaMail , abra o lado direito da página há um link de download, clique sobre ele para download.
  • Você pode baixar a última versão do Java (versão 1.1.1) JAF .

Você também pode usar o site para fornecer link para download:

Baixe e descompacte os arquivos no diretório de nível superior recém-criado, você vai encontrar algum arquivo jar duas aplicações. Você precisa adicionar arquivosmail.jar e activation.jarno seu CLASSPATH.

Enviar um simples e-mail

Os exemplos a seguir enviar um simples e-mail do seu computador. Isto assume que o seuhost local está conectado ao suporte Internet e e-mail.Assegurando ao mesmo tempo que os pacotes de e-mail da API Java e pacote de JAF todos os arquivos jar no classpath estão disponíveis.

// Nome SendEmail.java
import java.io. *;
import java.util * .;
importação javax.servlet * .;
importação javax.servlet.http * .;
importação javax.mail * .;
importação javax.mail.internet * .;
importação javax.activation * .;
 
classe pública SendEmail estende HttpServlet {
    
  doGet public void (HttpServletRequest pedido,
                    HttpServletResponse resposta)
            lança ServletException, IOException
  {
      // ID e-mail do destinatário
      String para = "[email protected]";
 
      // Do remetente ID e-mail
      String a partir = "[email protected]";
 
      // Vamos dizer que você enviar acolhimento de e-mail String = "localhost" a partir do host local;
 
      // Obter as propriedades do sistema Propriedades = System.getProperties ();
 
      // Configurar uma properties.setProperty servidor de correio ( "mail.smtp.host", host);
 
      // Obter a sessão padrão Session objeto Session = Session.getDefaultInstance (propriedades);
      
      // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      try {
         // Criar um padrão MimeMessage objetos MimeMessage mensagem = new MimeMessage (sessão);
         // Definir o de: campo de cabeçalho do cabeçalho.
         message.setFrom (nova InternetAddress (de));
         // Set To: campo de cabeçalho do cabeçalho.
         message.addRecipient (Message.RecipientType.TO,
                                  nova InternetAddress (a));
         // Definir o assunto: campo de cabeçalho
         message.setSubject ( "Esta é a linha de assunto!");
         // Agora definir a mensagem real message.setText ( "Esta é a mensagem real");
         // Enviar a mensagem Transport.send (mensagem);
         título String = "email";
         res String = "mensagens enviadas com sucesso ...";
         Cordas docType = "\ n <DOCTYPE html!>";
         out.println (docType +
         "<Html> \ n" +
         "<Head> <title>" + título + "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" Centro \ ">" + título + "</ h1> \ n" +
         "<P align = \" Centro \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Agora vamos compilar o Servlet acima, e crie a seguinte entrada no arquivo 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>
....

Agora, visitando a URL http: // localhost: 8080 / SendEmail chamar este Servlet. Isto irá enviar um e-mail para oIDde e-mail [email protected], e aparecerá como mostra a seguinte resposta:

Enviar e-mail

enviada com sucesso uma mensagem ...

Se você quiser enviar um e-mail para vários destinatários, utilize os seguintes métodos para especificar múltiplos ID e-mail:

addRecipients vazios (tipo Message.RecipientType, 
                   Address [] endereços)
lança MessagingException

O seguinte é uma descrição dos parâmetros:

  • Tipo: Este será definido como A, CC ou BCC.Aqui, CC, em nome do CC, representantes BCC BCC. Por exemploMessage.RecipientType.TO.
  • endereços: Este é um conjunto de ID e-mail.Ao especificar ID e-mail, você precisa usar o método InternetAddress ().

Enviar um e-mail HTML

O exemplo a seguir irá enviar um e-mail em formato HTML no seu computador. Isto assume que o seuhost local está conectado ao suporte Internet e e-mail.Assegurando ao mesmo tempo que os pacotes de e-mail da API Java e pacote de JAF todos os arquivos jar no classpath estão disponíveis.

Este exemplo é muito semelhante aos exemplos anteriores, mas aqui vamos usar o método () setContent para definir o segundo parâmetro é o conteúdo "text / html", este parâmetro é usado para especificar o conteúdo HTML contido na mensagem.

Usando esse exemplo, você pode enviar o conteúdo não se limita ao tamanho do conteúdo HTML.

// Nome SendEmail.java
import java.io. *;
import java.util * .;
importação javax.servlet * .;
importação javax.servlet.http * .;
importação javax.mail * .;
importação javax.mail.internet * .;
importação javax.activation * .;
 
classe pública SendEmail estende HttpServlet {
    
  doGet public void (HttpServletRequest pedido,
                    HttpServletResponse resposta)
            lança ServletException, IOException
  {
      // ID e-mail do destinatário
      String para = "[email protected]";
 
      // Do remetente ID e-mail
      String a partir = "[email protected]";
 
      // Vamos dizer que você enviar acolhimento de e-mail String = "localhost" a partir do host local;
 
      // Obter as propriedades do sistema Propriedades = System.getProperties ();
 
      // Configurar uma properties.setProperty servidor de correio ( "mail.smtp.host", host);
 
      // Obter a sessão padrão Session objeto Session = Session.getDefaultInstance (propriedades);
      
	  // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      try {
         // Criar um padrão MimeMessage objetos MimeMessage mensagem = new MimeMessage (sessão);
         // Definir o de: campo de cabeçalho do cabeçalho.
         message.setFrom (nova InternetAddress (de));
         // Set To: campo de cabeçalho do cabeçalho.
         message.addRecipient (Message.RecipientType.TO,
                                  nova InternetAddress (a));
         // Definir o assunto: campo de cabeçalho
         message.setSubject ( "Esta é a linha de assunto!");

         // Definir a mensagem de HTML tamanho do conteúdo message.setContent limitada real ( "<h1> Esta é a mensagem real </ h1>",
                            "Text / html");
         // Enviar a mensagem Transport.send (mensagem);
         título String = "email";
         res String = "mensagens enviadas com sucesso ...";
         Cordas docType = "\ n <DOCTYPE html!>";
         out.println (docType +
         "<Html> \ n" +
         "<Head> <title>" + título + "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" Centro \ ">" + título + "</ h1> \ n" +
         "<P align = \" Centro \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Compilar e executar o servlet acima, enviar mensagens em HTML em um determinado ID e-mail.

Enviar anexos em e-mail

Os exemplos a seguir envie um e-mail com um anexo no seu computador será. Isto assume que o seuhost local está conectado ao suporte Internet e e-mail.Assegurando ao mesmo tempo que os pacotes de e-mail da API Java e pacote de JAF todos os arquivos jar no classpath estão disponíveis.

// Nome SendEmail.java
import java.io. *;
import java.util * .;
importação javax.servlet * .;
importação javax.servlet.http * .;
importação javax.mail * .;
importação javax.mail.internet * .;
importação javax.activation * .;
 
classe pública SendEmail estende HttpServlet {
    
  doGet public void (HttpServletRequest pedido,
                    HttpServletResponse resposta)
            lança ServletException, IOException
  {
      // ID e-mail do destinatário
      String para = "[email protected]";
 
      // Do remetente ID e-mail
      String a partir = "[email protected]";
 
      // Vamos dizer que você enviar acolhimento de e-mail String = "localhost" a partir do host local;
 
      // Obter as propriedades do sistema Propriedades = System.getProperties ();
 
      // Configurar uma properties.setProperty servidor de correio ( "mail.smtp.host", host);
 
      // Obter a sessão padrão Session objeto Session = Session.getDefaultInstance (propriedades);
      
	  // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

       try {
         // Criar um padrão MimeMessage objetos MimeMessage mensagem = new MimeMessage (sessão);
 
         // Definir o de: campo de cabeçalho do cabeçalho.
         message.setFrom (nova InternetAddress (de));
 
         // Set To: campo de cabeçalho do cabeçalho.
         message.addRecipient (Message.RecipientType.TO,
                                  nova InternetAddress (a));
 
         // Definir o assunto: campo de cabeçalho
         message.setSubject ( "Esta é a linha de assunto!");
 
         // Cria uma parte da mensagem BodyPart messageBodyPart = new MimeBodyPart ();
 
         // Preencha uma mensagem messageBodyPart.setText ( "Este é o corpo da mensagem");
         
         // Cria uma mensagem multi-parte de várias partes Multipart = new MimeMultipart ();
 
         // Conjunto de partes de mensagens de texto multipart.addBodyPart (messageBodyPart);
 
         // A segunda parte é um acessório messageBodyPart = new MimeBodyPart ();
         String $ filename = "file.txt";
         fonte DataSource = new FileDataSource (filename);
         messageBodyPart.setDataHandler (nova DataHandler (fonte));
         messageBodyPart.setFileName (filename);
         multipart.addBodyPart (messageBodyPart);
 
         // Enviar message.setContent completa mensagem parte (várias vias);
 
         // Enviar a mensagem Transport.send (mensagem);
         título String = "email";
         res String = "com êxito enviar e-mail ...";
         Cordas docType = "\ n <DOCTYPE html!>";
         out.println (docType +
         "<Html> \ n" +
         "<Head> <title>" + título + "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" Centro \ ">" + título + "</ h1> \ n" +
         "<P align = \" Centro \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Compilar e executar o servlet acima, enviar mensagens com anexos de arquivo em um determinado ID de e-mail.

seção de autenticação do usuário

Se você precisa fornecer o endereço de e-mail ID de usuário e senha do servidor de autenticação, você pode definir as seguintes propriedades:

 props.setProperty ( "mail.user", "myuser");
 props.setProperty ( "mail.password", "MyPwd");

O resto do mecanismo de entrega de e-mail é consistente com o acima explicar.