本程序利用Apache commons Email、Apache commons IO、Apache commons FileUpload组件,并使用MyEclipse6.0、JDK6.0、Tomcat6.0调试通过。
commons-email是apache提供的一个开源的API,主要包括SimpleEmail,MultiPartEmail,HtmlEmail,EmailAttachment四个类。
SimpleEmail:发送简单的email,不能添加附件
MultiPartEmail:文本邮件,可以添加多个附件
HtmlEmail:HTML格式邮件,同时具有MultiPartEmail类所有“功能”
EmailAttchment:附件类,可以添加本地资源,也可以指定网络上资源,在发送时自动将网络上资源下载发送
使用Apache commons Email组件发送邮件时,要求有一个可支持Email发送的邮件服务器,并且有合法的帐号及密码,本例中使用163提供的smtp.163.com服务器。具体步骤如下:
1. 在MyEclipse中创建Web项目
在MyEclipse中创建Web项目JavaMail,在WebRoot中创建用于保存上传文件的目录 uploads。
2. 到http://www.apache.org下载相关的组件
到http://www.apache.org下载相关的组件,下载后解压缩,并找到下面本个JAR文件,复制到Web项目的WEB-INF/lib目录中。
commons-email-1.1.jar
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
3. 创建显示消息的JSP文件message.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>消息提示</title>
</head>
<body>
${requestScope['sendmail.message'] }
</body>
</html>
4 带附件的电子邮件
4.1 创建JSP文件sendMail2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>带附件的电子邮件</title>
</head>
<body>
使用Apache 组件发送带附件的邮件
<hr/>
<form action="<%=request.getContextPath()%>/servlet/SendMailController2" method="post" enctype="multipart/form-data" name="form1">
<table width="600" border="1">
<tr>
<td>发邮件地址:</td>
<td><label>
<input name="from" type="text" id="from" size="50" value="${requestScope.userName}@163.com">
</label></td>
<td> </td>
</tr>
<tr>
<td>收件邮件地址:</td>
<td>
<label>
<input name="to" type="text" id="to" size="50">
</label> </td>
<td> </td>
</tr>
<tr>
<td>邮件主题:</td>
<td><label>
<input name="subject" type="text" id="subject" size="50">
</label></td>
<td> </td>
</tr>
<tr>
<td>邮件内容:</td>
<td><label>
<textarea name="content" id="content" cols="50" rows="8"></textarea>
&
commons-email是apache提供的一个开源的API,主要包括SimpleEmail,MultiPartEmail,HtmlEmail,EmailAttachment四个类。
SimpleEmail:发送简单的email,不能添加附件
MultiPartEmail:文本邮件,可以添加多个附件
HtmlEmail:HTML格式邮件,同时具有MultiPartEmail类所有“功能”
EmailAttchment:附件类,可以添加本地资源,也可以指定网络上资源,在发送时自动将网络上资源下载发送
使用Apache commons Email组件发送邮件时,要求有一个可支持Email发送的邮件服务器,并且有合法的帐号及密码,本例中使用163提供的smtp.163.com服务器。具体步骤如下:
1. 在MyEclipse中创建Web项目
在MyEclipse中创建Web项目JavaMail,在WebRoot中创建用于保存上传文件的目录 uploads。
2. 到http://www.apache.org下载相关的组件
到http://www.apache.org下载相关的组件,下载后解压缩,并找到下面本个JAR文件,复制到Web项目的WEB-INF/lib目录中。
commons-email-1.1.jar
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
3. 创建显示消息的JSP文件message.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>消息提示</title>
</head>
<body>
${requestScope['sendmail.message'] }
</body>
</html>
4 带附件的电子邮件
4.1 创建JSP文件sendMail2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>带附件的电子邮件</title>
</head>
<body>
使用Apache 组件发送带附件的邮件
<hr/>
<form action="<%=request.getContextPath()%>/servlet/SendMailController2" method="post" enctype="multipart/form-data" name="form1">
<table width="600" border="1">
<tr>
<td>发邮件地址:</td>
<td><label>
<input name="from" type="text" id="from" size="50" value="${requestScope.userName}@163.com">
</label></td>
<td> </td>
</tr>
<tr>
<td>收件邮件地址:</td>
<td>
<label>
<input name="to" type="text" id="to" size="50">
</label> </td>
<td> </td>
</tr>
<tr>
<td>邮件主题:</td>
<td><label>
<input name="subject" type="text" id="subject" size="50">
</label></td>
<td> </td>
</tr>
<tr>
<td>邮件内容:</td>
<td><label>
<textarea name="content" id="content" cols="50" rows="8"></textarea>
&

本文详细介绍了如何在Java Web项目中利用Apache Commons Email组件发送带附件的邮件。通过创建JSP页面、Servlet以及配置Web.xml,演示了从上传文件到发送邮件的完整过程,包括SMTP服务器设置和身份验证。
最低0.47元/天 解锁文章
2731

被折叠的 条评论
为什么被折叠?



