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 ...
随机推荐
- 用Oracle的TRIM函数去除字符串首尾指定字符
去掉首尾空格 SELECT TRIM(' abc '), ltrim(' abc '), rtrim(' abc ') FROM dual; 去掉首尾的其他字符 SELECT /*TRIM(';a;b ...
- java中的hashtable
好久没写博客了,这次总结一下hashtable,哈希表是我们在数据结构时候所学,在网络安全时候,老师说可以用来加密,在数据库中,可以用来当作索引. http://www.cnblogs.com/leo ...
- Dynamic Vertex Buffers
ynamic vertex buffers on the other hand allow us to manipulate the information inside the vertex buf ...
- (3)I2C总线的字节格式,时钟同步和仲裁
字节格式 发送到SDA线上的每个字节必须是8位.每次传输的字节数量是不受限制的.每个字节后必须跟着一个ACK应答位.数据从最高有效位(MSB)开始传输.如果从机要执行一些功能后才能接收或者发送新的完整 ...
- 完美atoi,哈哈
/* atoi算法,要求完美版 有两种,一种是用longlong,一种是真用int “” " " “-” “+” “ -23” “ +23” “12a" "ab ...
- Node.js学习(14)----EJS模板引擎
这个入门教程将从以下几个方面来讲解: 1. 引入EJS 2. 创建一个模板 3. 使用视图工具组件 4. 使用错误处理组件 5. 什么情况下应使用EJS 引入EJS 在我们正式开始前,我们先来做点准备 ...
- 配置ModSecurity防火墙与OWASP规则
中文译文参考:http://netsecurity.51cto.com/art/201407/446264.htm 英文原文参考:http://resources.infosecinstitute.c ...
- bootstrap折叠修改hover
$('div.panel-collapse').on('shown.bs.collapse hidden.bs.collapse', function() { $(this).dequeue('col ...
- Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与 scrollBy这两个函数的区别 . 首先 ,我们必须明白在Android ...
- Android 软件开发之 PreferenceActivity 中的组件
1.PreferenceActivity 介绍 PreferenceActivity 继承ListActivity 它是以一个列表的形式在展现内容,它最主要的特点是添加Preference可以让控件的 ...