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 ...
随机推荐
- 嵌入式 uboot、fs、kernel制作和烧录简记-hi3518c
NULL RAM : mkdir ramdisk_test 临时挂在点 dd if=/dev/zero of=rootfs.ramdisk bs=1k count=10000 建立空硬盘//1500 ...
- 2013华为校园招聘java实现(大家水个回复啊)
package 乒乒乓乓; import java.util.Scanner; /* * * author:hansongjiang 分别求整数数组里面的奇数与偶数之和 问题描述:从标准输入里面接收一 ...
- IIS ASP.NETWEB站点部署时遇到的问题记录
最近由于工作的需要,需要自己部署一些ASP.NET站点,但中间出现了一点小小的问题. 由于自己才疏学浅,此问题折腾了我将近一个小时,最后还是百度出了解决这个问题的方法,先记录如下,仅供自己记忆用. 我 ...
- poj1149--PIGS(最大流)
题意: 有m个猪圈 每个猪圈有不同数量的猪 [0, 1000]有n个顾客 每个顾客需要Bi头猪 有Ai个钥匙 能打开Ai个不同的猪圈顾客按顺序来买猪 只能买他有钥匙的猪 买完之后 这几个猪圈的猪可以相 ...
- Spout数据源
Spout 数据源 消息源 Spout 是 Storm 的 Topology 中的消息生产者(即 Tuple 的创造者). Spout 介绍 1. Spout 的结构 Spout 是 Storm 的核 ...
- vi / vim 删除以及其它命令
删除一行:dd 删除一个单词/光标之后的单词剩余部分:dw 删除当前字符:x 光标之后的该行部分:d$ 文本删除 dd 删除一行 d$ 删除以当前字符开始的一行字符 ndd 删除以当前行开始的n行 d ...
- Android UI开发第三十二篇——Creating a Navigation Drawer
Navigation Drawer是从屏幕的左侧滑出,显示应用导航的视图.官方是这样定义的: The navigation drawer is a panel that displays the ap ...
- python 语句,条件,循环
#coding:utf-8__author__ = 'Administrator'#想要在同一行打印,print后面加','print 12,print 34'''从模块导入函数import some ...
- openCV 2.4.13 iOS background_segm.hpp 'list' file not found
最近下载了最新版的OpenCV的Framework. 导入到项目里边,编译.然后就出现了问题 /opencv2.framework/Headers/video/background_segm.hpp: ...
- Cocos2d-x 2.0 自适应多种分辨率
转自:http://dualface.github.io/blog/2012/08/17/cocos2d-x-2-dot-0-multi-resolution/ cocos2d-x 2.0 提供一个极 ...