Servlet 教程 之 Servlet 发送电子邮件 3

简介: Servlet教程展示了如何使用JavaMail API和JAF从Servlet发送带附件的电子邮件。首先确保安装了所需库并设置CLASSPATH。示例代码创建MimeMessage,设置收发件人、主题和正文,并添加Multipart附件。当Servlet被调用时,它会发送邮件并显示确认信息。

Servlet 教程 之 Servlet 发送电子邮件 3

Servlet 发送电子邮件

使用 Servlet 发送一封电子邮件是很简单的,但首先您必须在您的计算机上安装 JavaMail API 和 Java Activation Framework)JAF)。

在电子邮件中发送附件

下面的实例将从您的计算机上发送一封带有附件的电子邮件。这里假设您的本地主机已连接到互联网,并支持发送电子邮件。同时确保 Java Email API 包和 JAF 包的所有的 jar 文件在 CLASSPATH 中都是可用的。

// 文件名 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
String to = "abcd@gmail.com";

  // 发件人的电子邮件 ID
  String from = "web@gmail.com";

  // 假设您是从本地主机发送电子邮件
  String host = "localhost";

  // 获取系统的属性
  Properties properties = System.getProperties();

  // 设置邮件服务器
  properties.setProperty("mail.smtp.host", host);

  // 获取默认的 Session 对象
  Session session = Session.getDefaultInstance(properties);

  // 设置响应内容类型
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();

   try{
     // 创建一个默认的 MimeMessage 对象
     MimeMessage message = new MimeMessage(session);

     // 设置 From: header field of the header.
     message.setFrom(new InternetAddress(from));

     // 设置 To: header field of the header.
     message.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));

     // 设置 Subject: header field
     message.setSubject("This is the Subject Line!");

     // 创建消息部分 
     BodyPart messageBodyPart = new MimeBodyPart();

     // 填写消息
     messageBodyPart.setText("This is message body");

     // 创建一个多部分消息
     Multipart multipart = new MimeMultipart();

     // 设置文本消息部分
     multipart.addBodyPart(messageBodyPart);

     // 第二部分是附件
     messageBodyPart = new MimeBodyPart();
     String filename = "file.txt";
     DataSource source = new FileDataSource(filename);
     messageBodyPart.setDataHandler(new DataHandler(source));
     messageBodyPart.setFileName(filename);
     multipart.addBodyPart(messageBodyPart);

     // 发送完整的消息部分
     message.setContent(multipart );

     // 发送消息
     Transport.send(message);
     String title = "发送电子邮件";
     String res = "成功发送电子邮件...";
     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();
  }

}
}
编译并运行上面的 Servlet ,在给定的电子邮件 ID 上发送带有文件附件的消息。

目录
相关文章
|
3天前
Servlet 教程 之 Servlet 服务器 HTTP 响应 2
Servlet教程讲解了如何通过HttpServletResponse设置HTTP响应,包括编码URL、添加cookie、设置报头、控制缓冲区、发送错误或重定向响应。方法如encodeURL、addCookie、sendError、sendRedirect等,涉及状态码、报头、字符编码和内容长度的管理。
21 2
|
3天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
31 14
|
3天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
24 8
|
3天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 服务器 HTTP 响应 3
`Servlet`教程示例展示了如何创建一个HTTP响应,使用`@WebServlet(&quot;/Refresh&quot;)`的`Refresh`类继承`HttpServlet`。在`doGet`方法中,设置了`Refresh`头以每5秒自动刷新,并用`setContentType(&quot;text/html;charset=UTF-8&quot;)`设定内容类型。还使用`Calendar`和`SimpleDateFormat`获取并格式化当前时间显示。相应的`web.xml`配置指定了Servlet路径。当访问此Servlet时,页面将每5秒更新一次显示的系统时间。
20 4
|
3天前
|
Java API
Servlet 教程 之 Servlet 发送电子邮件 6
Servlet教程展示了如何使用JavaMail API和JAF从Servlet发送邮件。Servlet类位于`com.myorg`包中,名为`MyServlet`,继承自`HttpServlet`。初始化时设置消息,`doGet`方法处理请求,返回HTML响应。要发送邮件,需确保Java库已安装。
14 0
|
3天前
|
Java 编译器 API
Servlet 教程 之 Servlet 发送电子邮件 7
在Servlet中发送邮件需要JavaMail API和JAF。将java文件放在类路径下,如`com.myorg`,然后在`&lt;Tomcat-installation-directory&gt;/webapps/ROOT/WEB-INF/classes`目录下,使用`javac`编译`MyServlet.java`。如果依赖其他库,如servlet-api.jar,需将其加入CLASSPATH。确保JDK在PATH环境变量中,以便使用`javac`。
12 0
|
3天前
|
Java API 数据安全/隐私保护
Servlet 教程 之 Servlet 发送电子邮件 4
该教程展示了如何使用Servlet通过JavaMail API发送带附件的电子邮件。首先,确保安装了JavaMail API和JAF。在示例代码`SendEmail.java`中,创建MimeMessage对象,设置发件人、收件人、主题和正文。然后添加MimeBodyPart用于文本和附件,使用Multipart组合它们。最后,通过Transport.send()发送邮件。如果需要认证,可添加&quot;mail.user&quot;和&quot;mail.password&quot;属性。编译并运行Servlet即可发送邮件。
19 2
|
3天前
|
Java API 数据安全/隐私保护
Servlet 教程 之 Servlet 发送电子邮件 5
该教程介绍了如何使用Servlet发送带附件的电子邮件。首先,需要安装JavaMail API和JAF。在Servlet中,通过设置邮件服务器属性,创建MimeMessage对象,添加收件人、主题和正文。然后,利用Multipart添加附件,最后通过Transport.send()发送邮件。如果需要身份验证,可添加邮件用户名和密码属性。示例代码展示了完整的发送过程。此外,提到了Web应用的标准目录结构,其中WEB-INF包含classes和lib目录,用于存放类和库文件。
17 1
|
3天前
|
Java API
Servlet 教程 之 Servlet 发送电子邮件 2
使用Servlet发送HTML邮件需要JavaMail API和JAF。在示例中,Servlet创建MimeMessage对象,设置发件人、收件人、主题及HTML内容,然后通过Transport.send()发送。确保相关jar在CLASSPATH中。当Servlet被调用时,它会向指定邮箱发送带有HTML标题的邮件。
29 11
|
3天前
|
Java API
Servlet 教程 之 Servlet 发送电子邮件 1
该教程介绍了如何使用Servlet发送电子邮件,需先安装JavaMail API和JAF。从Java官网或提供链接下载所需jar文件,将其加入CLASSPATH。示例代码展示了一个Servlet,通过MimeMessage设置发件人、收件人、主题和正文,然后使用Transport.send()发送邮件。要运行Servlet,需在web.xml配置并映射URL。访问特定URL即可触发邮件发送。
29 12