English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Enviar um e-mail usando Servlet é muito simples, mas primeiro você deve instalar no seu computador: JavaMail API e Java Activation Framework)JAF)。
Você pode baixar a versão mais recente do Java do site Java: JavaMail, abra a página da direita e há: Downloads Clique no link para baixar.
Você pode baixar a versão mais recente do Java do site Java: JAF (versão)} 1.1.1)。
Você também pode usar o link de download fornecido pelo nosso site:
Faça o download e descomprima esses arquivos. No diretório superior recém-criado, você encontrará alguns arquivos jar da aplicação. Você precisa adicionar mail.jar e activation.jar arquivo foi adicionado ao seu CLASSPATH.
O exemplo a seguir enviará um e-mail simples do seu computador. Aqui está presuposto que suaMáquina localConectado à Internet e capaz de enviar e-mails. Além disso, certifique-se de que todos os arquivos jar do Java Email API e JAF estejam disponíveis no CLASSPATH.
// Nome do arquivo 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 extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ID de e-mail do destinatário String to = "[email protected]"; // ID de e-mail do remetente String from = "[email protected]"; // Supondo que você esteja enviando e-mail a partir do host local String host = "localhost"; // Obter as propriedades do sistema Properties properties = System.getProperties(); // Configurar o servidor de e-mail properties.setProperty("mail.smtp.host", host); // Obter o objeto Session padrão Session session = Session.getDefaultInstance(properties); // Definir tipo de conteúdo da resposta response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ // Criar um objeto MimeMessage padrão MimeMessage message = new MimeMessage(session); // Definir campo de cabeçalho From: do cabeçalho. message.setFrom(new InternetAddress(from)); // Definir campo de cabeçalho To: do cabeçalho. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Definir campo de cabeçalho Subject: message.setSubject("This is the Subject Line!"); // Agora, configure a mensagem real message.setText("This is actual message"); // Enviar mensagem Transport.send(message); String title = "Enviar E-mail"; String res = "Mensagem enviada com sucesso..."; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n" + "<p align=\"center\">" + res + "</p>\n" + "</body></html>"); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Agora, vamos compilar o Servlet acima e criar 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, acesse a URL http://localhost:8080/Chame o Servlet SendEmail para enviar um e-mail para o ID de e-mail fornecido. [email protected]e mostrará a resposta abaixo:
Enviar e-mailMensagem enviada com sucesso... |
Se você quiser enviar um e-mail para vários destinatários, use o método a seguir para especificar vários IDs de e-mail:
void addRecipients(Message.RecipientType type, Address[] addresses) lança MessagingException
A seguir está a descrição dos parâmetros:
type:Isso será configurado como TO, CC ou BCC. Aqui, CC representa cópia, e BCC representa cópia oculta. Por exemplo Message.RecipientType.TO。
addresses:Este é um array de IDs de e-mail. Quando especificar um ID de e-mail, você precisa usar o método InternetAddress().
O exemplo a seguir enviará um e-mail em formato HTML do seu computador. Aqui está presuposto que suaMáquina localConectado à Internet e capaz de enviar e-mails. Além disso, certifique-se de que todos os arquivos jar do Java Email API e JAF estejam disponíveis no CLASSPATH.
Este exemplo é muito semelhante ao anterior, mas aqui usamos o método setContent() para definir o segundo parâmetro como "text"./O conteúdo de "html" é usado para especificar que o conteúdo HTML está incluído na mensagem.
Usando este exemplo, você pode enviar conteúdo HTML de qualquer tamanho.
// Nome do arquivo 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 extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ID de e-mail do destinatário String to = "[email protected]"; // ID de e-mail do remetente String from = "[email protected]"; // Supondo que você esteja enviando e-mail a partir do host local String host = "localhost"; // Obter as propriedades do sistema Properties properties = System.getProperties(); // Configurar o servidor de e-mail properties.setProperty("mail.smtp.host", host); // Obter o objeto Session padrão Session session = Session.getDefaultInstance(properties); // Definir tipo de conteúdo da resposta response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ // Criar um objeto MimeMessage padrão MimeMessage message = new MimeMessage(session); // Definir campo de cabeçalho From: do cabeçalho. message.setFrom(new InternetAddress(from)); // Definir campo de cabeçalho To: do cabeçalho. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Definir campo de cabeçalho Subject: message.setSubject("This is the Subject Line!"); // Definir a mensagem HTML real, sem limite de tamanho do conteúdo message.setContent("<h1>This is actual message</h1> "text/html" ); // Enviar mensagem Transport.send(message); String title = "Enviar E-mail"; String res = "Mensagem enviada com sucesso..."; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n" + "<p align=\"center\">" + res + "</p>\n" + "</body></html>"); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compile e execute o Servlet acima para enviar uma mensagem HTML para o e-mail ID fornecido.
O exemplo a seguir enviará um e-mail com anexos a partir do seu computador. Supondo que vocêMáquina localConectado à Internet e capaz de enviar e-mails. Além disso, certifique-se de que todos os arquivos jar do Java Email API e JAF estejam disponíveis no CLASSPATH.
// Nome do arquivo 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 extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ID de e-mail do destinatário String to = "[email protected]"; // ID de e-mail do remetente String from = "[email protected]"; // Supondo que você esteja enviando e-mail a partir do host local String host = "localhost"; // Obter as propriedades do sistema Properties properties = System.getProperties(); // Configurar o servidor de e-mail properties.setProperty("mail.smtp.host", host); // Obter o objeto Session padrão Session session = Session.getDefaultInstance(properties); // Definir tipo de conteúdo da resposta response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ // Criar um objeto MimeMessage padrão MimeMessage message = new MimeMessage(session); // Definir campo de cabeçalho From: do cabeçalho. message.setFrom(new InternetAddress(from)); // Definir campo de cabeçalho To: do cabeçalho. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Definir campo de cabeçalho Subject: message.setSubject("This is the Subject Line!"); // Criar parte da mensagem BodyPart messageBodyPart = new MimeBodyPart(); // Preencher mensagem messageBodyPart.setText("This is message body"); // Criar uma mensagem multipart Multipart multipart = new MimeMultipart(); // Definir parte de mensagem de texto multipart.addBodyPart(messageBodyPart); // A segunda parte é o anexo messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Enviar parte completa da mensagem message.setContent(multipart ); // Enviar mensagem Transport.send(message); String title = "Enviar E-mail"; String res = "E-mail enviado com sucesso..."; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n" + "<p align=\"center\">" + res + "</p>\n" + "</body></html>"); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compile e execute o Servlet acima, enviando uma mensagem com anexos para o e-mail ID fornecido.
Se precisar fornecer um ID de usuário e senha para autenticação ao servidor de e-mail, você pode configurar as seguintes propriedades:
props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
A parte restante do mecanismo de envio de e-mail é consistente com o explicado acima.