您的位置:首页 > 编程语言 > Java开发

mail.java--学习笔记

2011-06-27 21:26 459 查看
系统存在这样一个缺陷,需要去完善它,:1用事务控制事件,2用mail平台来通知客户,3并根据mail发送是否成功来持久化数据,

4还要做到定时刷新数据。



哦 第一次听到这个感觉好难,不知道该从哪里去下手,spring框架是从没有接触过的,就从ta入手

先学习了spring定时器Quartz,解决了定时刷新数据的问题---happy!!!

然后简单的使用事务处理机制,做了几个小例子

今天终于把mail功能实现了 ,当接到自己给自己发送的第一个邮件的时候 哈哈 好开心哇!



具体实现如下:

1:建立index.html

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>填写邮件信息</title>

<LINK REL="stylesheet" HREF="E:/tomcat 4.1.12/webapps/qds/css.css" TYPE="text/css">

</head>

<body bgcolor="#FFFFCC">

<form name="form1" method="post" action="sendMail.jsp">

<table width="75" border="0" align="center" cellspacing="1" bgcolor="#006600" height="258">

<div align="center">

<font size="5" color="blue">填写邮件信息</font>

<tr bgcolor="#FFFFFF">

<td width="30%" height="34">发件人地址:</td>

<td width="70%" height="34">

<input name="from" type="text" id="from" CLASS="kuang-bg"></td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="30%" height="34">收信人地址:</td>

<td width="70%" height="34">

<input name="to" type="text" id="to" CLASS="kuang-bg"></td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="30%" height="25">主题:</td>

<td width="70%" height="25">

<input name="title" type="text" id="title" CLASS="kuang-bg"></td>

</tr>

<tr>

<td height="119" colspan="2" bgcolor="#FFFFFF">

<textarea name="content" cols="50" rows="5" id="content" CLASS="kuang-bg"></textarea></td>

</tr>

<tr align="center">

<td colspan="2" bgcolor="#FFFFFF" height="27">

<input type="submit" name="Submit" value="发 送" CLASS="botton">

<input type="reset" name="Submit2" value="重 写" CLASS="botton">

</td>

</tr>

</table>

</form>

</body>

</html>

用于接收用户输入的信息



2.建立 sendMail.jsp



<%@ page contentType="text/html;charset=utf-8" %>

<%request.setCharacterEncoding("utf-8");%><!--中文处理代码-->

<!--导入要用到的类库-->

<%@ page import="java.util.*"%>

<%@ page import="javax.mail.*"%>

<%@ page import="javax.mail.internet.*"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>发送邮件</title>

</head>

<body>

<%

try{

//从html表单中获取邮件信息

String tfrom=request.getParameter("from");

String tto=request.getParameter("to");

String ttitle=request.getParameter("title");

String tcontent=request.getParameter("content");

//JavaMail需要Properties来创建一个session对象。它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.

//Properties对象获取诸如邮件服务器、用户名、密码等信息,以及其他可在整个应用程序中 共享的信息。

Properties props=new Properties();//也可用Properties props = System.getProperties();

props.put("mail.smtp.host","邮件服务器");//存储发送邮件服务器的信息

props.put("mail.smtp.auth","false");//同时通过验证

Session s=Session.getInstance(props,null);//根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象

s.setDebug(true);//设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法

// 一旦创建了自己的Session对象,就是该去创建要发送的消息的 时候了。这时就要用到消息类型(MimeMessage是其中一种类型)。

// Message对象将存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail session。

// Message类表示单个邮件消息,它的属性包括类型,地址信息和所定义的目录结构。

Message message=new MimeMessage(s);//由邮件会话新建一个消息对象

Address from=new InternetAddress(tfrom);//发件人的邮件地址

message.setFrom(from);//设置发件人

Address to=new InternetAddress(tto);//收件人的邮件地址

message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO,还有3种预定义类型如下:

//Message.RecipientType.TO

//Message.RecipientType.CC

//Message.RecipientType.BCC

message.setSubject(ttitle);//设置主题

message.setText(tcontent);//设置信件内容

message.setSentDate(new Date());//设置发信时间

message.saveChanges();//存储邮件信息

// Transport 是用来发送信息的,

// 用于邮件的收发打操作。

Transport transport=s.getTransport("smtp");

transport.connect("填写邮件服务器"," 登陆服务器的用户名","密码");//有的服务器是没有设置用户名和密码的,这个根据需要去填写

transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址

transport.close();

%>

<div align="center">

<p><font color="#FF6600"> 发送成功!邮件已保存到<%=to %>邮箱里面</font></p>

<p><a href="index.html">再发一封</a> </p>

<!-- response.sendRedirect("mail_information.jsp"); 页面跳转-->

</div>

<%

//response.sendRedirect

}catch(MessagingException e){

out.println(e.toString());

}

%>

</body>

</html>



我做了几次 都没有发送成功,错误是服务器禁止链接,后来找强哥要了公司的服务器,嘿 一下就好了。代码是很健壮滴 经得起折腾。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: