JavaMail组件实现邮件功能
实现邮件收发功能需要3个jar包:
1.JavaMail组件保内的mail.jar和smtp.jar包
2.JAF组件包里的activition.jar。
复制到WebRoot/WEB-INF/lib目录下。
一、编写index.jsp页面,具体代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>welcome</title>
</head>
<body>
<form action="sendMail.jsp" method="post" name="form1">
<table width="75" border="0" align="center" cellspacing="1"
bgcolor="#006600" class="black">
<tr bgcolor="#ffffff">
<td width="24%">收信人地址:</td>
<td width="76%"><input name="to" type="text" id="to"></td>
</tr>
<tr bgcolor="#ffffff">
<td >主题:</td>
<td ><input name="title" type="text" id="title"></td>
</tr>
<tr>
<td height="18" colspan="2" bgcolor="#ffffff">
信件类型
<select name="emailtype" id="emailtype">
<option value="text/plain" selected>Text</option>
<option value="text/html" selected>Html</option>
</select>
</td>
</tr>
<tr>
<td height="53" colspan="2" bgcolor="#ffffff">
<textarea rows="5" cols="50" name="content" id="content"></textarea>
</td>
</tr>
<tr align="center">
<td colspan="2" bgcolor="#ffffff">
附件1(自定义):
<input name="fj1" type="text" id="fj1">
(输入文本信息)
</td>
</tr>
<tr align="center" valign="bottom">
<td colspan="2" bgcolor="#ffffff">
附件2(本地):
<input name="fj2" type="file" id="fj2" size="10">
</td>
</tr>
<tr align="center" >
<td colspan="2" bgcolor="#ffffff">
附件3(远程):
<input name="fj3" type="text" id="fj3" value="http://">
(输入URL)
</td>
</tr>
<tr align="center" >
<td colspan="2" bgcolor="#ffffff"> <input name="submit" type="submit" value="发送">
<input name="submit2" type="reset" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
二、创建sendMail.jsp页面,具体代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%request.setCharacterEncoding("gb2312"); %>
<%@ page import="java.util.*,javax.mail.*" %>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*" %>
<%@ page import="java.net.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
<%
try{
String tto=request.getParameter("to");
String ttitle=request.getParameter("title");
String emailtype=request.getParameter("emailtype");
String tcontent=request.getParameter("content");
String tfj1=request.getParameter("fj1");
String tfj2=request.getParameter("fj2");
String tfj3=request.getParameter("fj3");
//声明properities存储发件服务器信息
Properties props=new Properties();
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.auth", "true");
//创建邮件回话
Session s=Session.getInstance(props);
s.setDebug(true);
//创建一个消息对象
MimeMessage message=new MimeMessage(s);
InternetAddress from=new InternetAddress("393743083@qq.com");
message.setFrom(from);
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(ttitle);
message.setSentDate(new Date());
Multipart mm = new MimeMultipart();
BodyPart mdp=new MimeBodyPart();
mdp.setContent(tcontent, emailtype+";charset=gb2312");
mm.addBodyPart(mdp);
//附件1
mdp=new MimeBodyPart();
DataHandler dh=new DataHandler(tfj1,"text/plain;charset=gb2312");
mdp.setFileName("text.txt");
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
//附件2
mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource(tfj2);
dh=new DataHandler(fds);
int ddd=tfj2.lastIndexOf("\\");
String fname=tfj2.substring(ddd);
String ffname=new String(fname.getBytes("gb2312"),"ISO8859-1");
mdp.setFileName(ffname);
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
//附件3
mdp=new MimeBodyPart();
URL urlfj=new URL(tfj3);
URLDataSource ur=new URLDataSource(urlfj);
dh=new DataHandler(ur);
int ttt=tfj3.lastIndexOf("/");
String urlname=tfj3.substring(ttt);
mdp.setFileName(urlname);
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
message.setContent(mm);
message.saveChanges();
//发送邮件
Transport transport=s.getTransport("smtp");
transport.connect("smtp.qq.com",用户名,密码);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
%>
<div align="center">
<p><font color="#ff6600">发送成功</font></p>
<br>
<a href="sendMail.jsp">再来一封</a>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
}
%>
</body>
</html>
注:腾讯邮箱需要开通smtp功能。

JavaMail组件实现邮件功能的更多相关文章
- 【知识积累】JavaMail实现发邮件功能
一.前言 今天闲来没事,想着通过程序来给别人发邮件.于是,上网搜了一下,相应的资料也很多,刚开始完成了邮件的简单发送,后来想如何能发送附件,继续寻找 答案,但是遇到了一个问题是当我使用txt类型作为附 ...
- 手动搭建apache james邮件服务器,实现邮件功能
最近一直在搞邮件这块,本来我们邮件发送是用的腾讯免费的企业邮箱,邮件功能没有问题,但是由于邮件的限制,如下: 这些限制导致我们的部分客户是收不到邮件的,哪怕付费,这样的固定频率限制也是无法解决的,可以 ...
- javaMail实现收发邮件(一)
电子邮件的传输过程 电子邮件系统采用客户/服务器模式.电子邮件传送需要用到以下3个重要模块:MUA(Mail User Agent,邮件用户代理):用户通过它与电子邮件服务器打交道.MUA实际上就是邮 ...
- ActiveMQ入门系列之应用:Springboot+ActiveMQ+JavaMail实现异步邮件发送
现在邮件发送功能已经是几乎每个系统或网址必备的功能了,从用户注册的确认到找回密码再到消息提醒,这些功能普遍的会用到邮件发送功能.我们都买过火车票,买完后会有邮件提醒,有时候邮件并不是买完票立马就能收到 ...
- Spring Boot邮件功能
1.应用场景 邮件功能的应用场景可谓十分广泛,诸如注册用户.密码找回,消息通知.以及一些程序异常通知等都需要使用到该功能. 正是由于邮件功能的使用广泛,因此springboot也加在它的组件中添加了邮 ...
- SQLSERVER监控复制并使用数据库邮件功能发告警邮件
SQLSERVER监控复制并使用数据库邮件功能发告警邮件 最近熬出病来了,都说IT行业伤不起,不说了,说回今天的正题 正题 上个月月底的时候因为要搬迁机房,需要将一个数据信息数据库先搬到我们的机房,然 ...
- Gmail邮件功能那么强大,GMail被封,在国内怎么用gmail收邮件?
IT圈子里最热门的话题一定是:gmail被封,该怎么办?gmail由于强大的邮件功能,ITer一定是人手一个or多个,之前想要收发gmail使用imap或SMTP方式是可以在国内正常使用的,目前ima ...
- 关于TD邮件功能不能发到认证邮箱的解决之法
[原创] 关于TD邮件功能不能发到认证邮箱的解决之法 认证邮箱, 邮件服务器, 用户, 邮件系统 鉴于不少同行询问TD发邮件的问题,今天重新更新一下说明 解决问题的原则如下一.在TD服务器上安装一个邮 ...
- Nagios 配置自动发邮件功能
安装sendmailyum install -y sendmail* mailx 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.se ...
随机推荐
- Apk修改利器:ApkToolkit v2.1
作 者: Mzucore 时 间: 2013-05-10, 17:18:23 链 接: http://www.unpack.cn/thread-93058-1-1.html 下载地址:http://b ...
- POJ2492 A Bug's Life 带权并查集
分析:所谓带权并查集,就是比朴素的并查集多了一个数组,记录一些东西,例如到根的距离,或者和根的关系等 这个题,权数组为relation 代表的关系 1 和父节点不同性别,0,和父节点同性别 并查集一 ...
- [MarsZ]程序猿谈大学之大学应该学好哪些课程
大家好,我是MarsZ,上次给大家带来了程序猿Mars谈大学之大学应该怎么过 ,反响还不错(……),这次继续给大家分析一下大学应该学好哪些课程. 首先必须说明两点:一,以下我说的仅代表个人观点.二,仅 ...
- 【原】Comparator和Comparable的联系与区别
1.知识点了解 Comparator和Comparable都是用用来实现集合中元素的比较.排序的,所以,经常在集合外定义Comparator接口的方法和集合内实现Comparable接口的方法中实现排 ...
- 【CSS3】Advanced10:Gradient
1.background:linear-gradient(20deg/(to) bottom right,orange,red,hsl(60,100%,50%)); 2.-webkit-chrome/ ...
- POJ-1177 Picture 矩形覆盖周长并
题目链接:http://poj.org/problem?id=1177 比矩形面积并麻烦点,需要更新竖边的条数(平行于x轴扫描)..求横边的时候,保存上一个结果,加上当前长度与上一个结果差的绝对值就行 ...
- aix 扩展文件系统
今天发现公司的oracle测试 数据库不能启动,检查警告日志日志,提示归档空间不足,不能归档,于是扩展文件系统: 1.检查rootvg卷组的剩余空间[p2704u]:[/dsg/oracle11]$ ...
- hdu 2102 A计划(优先队列+dfs)
改了好久,上午来实验室打出来了,运行就是不对,一直找啊找!还是没找到,最后突然停电了,打好的代码还没保存呢! 刚才来的时候又重新打了一遍!!!结果一个小小的错误wrong了好久!!! 在dfs值返回时 ...
- Android UI--自定义ListView(实现下拉刷新+加载更多)
Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...
- ADODB.Connection 错误 '800a0e7a' 未找到提供程序 该程序可能未正确安装
今天调程序的时候发现的,错误提示如下: ADODB.Connection 错误 '800a0e7a' 未找到提供程序.该程序可能未正确安装. /conn.asp,行 6 因为系统是64位的win7或w ...