发送邮件的servlet; 这个是简单的文本发送但是就是有错 发送不成功 请大家看看 说是Transport.send(msg);
这条语句出错 public class Send extends HttpServlet { public Send() {
super();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb2312");
String from = request.getParameter("from");
String to = request.getParameter("to");
String subject = request.getParameter("subject");
String context = request.getParameter("context");
System.out.println(from);
System.out.println(to);
System.out.println(subject);
System.out.println(context);
// 确定要发送的邮件服务器的地址
String mailserver = "tang-429";
// 设置邮件的传输协议
try {
Properties prop = System.getProperties();
prop.put("mail.smtp.host", "tang-429"); // 建立邮件发送的连接
Session session = Session.getDefaultInstance(prop, null);
// 创建发送的信息的载体
Message msg = new MimeMessage(session);
// 设置相关的邮件属性
msg.setFrom(new InternetAddress(from));
// 点到点的发送
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(context); Transport.send(msg); } catch (Exception e) {
e.printStackTrace();
} out.print("发送成功!!!!");
out.flush();
out.close();
} }
报错: 网上查了很久 也改不对 望好心人帮忙 [email protected]
[email protected]
你好
你好
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
at com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:645)
at javax.mail.Transport.send0(Transport.java:171)
at javax.mail.Transport.send(Transport.java:98)
at cn.edu.hebut.sxh.Send.doPost(Send.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
... 20 more
这条语句出错 public class Send extends HttpServlet { public Send() {
super();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb2312");
String from = request.getParameter("from");
String to = request.getParameter("to");
String subject = request.getParameter("subject");
String context = request.getParameter("context");
System.out.println(from);
System.out.println(to);
System.out.println(subject);
System.out.println(context);
// 确定要发送的邮件服务器的地址
String mailserver = "tang-429";
// 设置邮件的传输协议
try {
Properties prop = System.getProperties();
prop.put("mail.smtp.host", "tang-429"); // 建立邮件发送的连接
Session session = Session.getDefaultInstance(prop, null);
// 创建发送的信息的载体
Message msg = new MimeMessage(session);
// 设置相关的邮件属性
msg.setFrom(new InternetAddress(from));
// 点到点的发送
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(context); Transport.send(msg); } catch (Exception e) {
e.printStackTrace();
} out.print("发送成功!!!!");
out.flush();
out.close();
} }
报错: 网上查了很久 也改不对 望好心人帮忙 [email protected]
[email protected]
你好
你好
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
at com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:645)
at javax.mail.Transport.send0(Transport.java:171)
at javax.mail.Transport.send(Transport.java:98)
at cn.edu.hebut.sxh.Send.doPost(Send.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
... 20 more
ant寻找build文件,然后确定该执行任务默认情况下,寻找build。xml文件ant build文件的实例:
1. 基于xml的 所以有xml申明
2. basedir=根目录
3. target : 执行动作
javac:如编译 源文件目录和 编译以后的目录
java:<target name="run" depends="compile">
<java classname="classname">
<classpath><pathelemetn path="classes"></classpath> 一个project能够通过<property>元素定义一系列属性
使用$ {property-name}符号引用属性值、无论多少个target依赖于一个target
,该target都只执行一次
target可以像命令行参数一样明确指定
楼主【regenesis0264】截止到2008-07-24 00:17:39的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:60 每贴平均分数:20
回帖的总数量:3 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:3 未结的总分数:60
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
function check(){
if (myform.username.value==""){
alert("请输入用户名!");myform.username.focus();return;
}
if (myform.truename.value==""){
alert("请输入真实姓名!");myform.truename.focus();return;
}
if (myform.pwd.value==""){
alert("请输入密码!");myform.pwd.focus();return;
}
if (myform.pwd.value.length<1){
alert("密码至少为6位,请重新输入!");myform.pwd.focus();return;
}
if (myform.pwd1.value==""){
alert("请确认密码!");myform.pwd1.focus();return;
}
if (myform.pwd.value!=myform.pwd1.value){
alert("您两次输入的密码不一致,请重新输入!");myform.pwd.focus();return;
}
if(myform.cardno.value==""){
alert("请证件号码!");myform.cardno.focus();return;
}
if (myform.email.value==""){
alert("请输入Email地址!");myform.email.focus();return;
}
var i=myform.email.value.indexOf("@");
var j=myform.email.value.indexOf(".");
if((i<0)||(i-j>0)||(j<0)){
alert("您输入的Email地址不正确,请重新输入!");myform.email.value="";myform.email.focus();return;
}
myform.submit();
}
function check_modi(){
if (myform.truename.value==""){
alert("请输入真实姓名!");myform.truename.focus();return;
}
if (myform.oldpwd.value==""){
alert("请输入原密码!");myform.oldpwd.focus();return;
}
if(myform.holdpwd.value!=myform.oldpwd.value){
alert("您输入的原密码不正确,请重新输入!");myform.oldpwd.value="";myform.oldpwd.focus();return;
}
if (myform.pwd.value==""){
alert("请输入新密码!");myform.pwd.focus();return;
}
if (myform.pwd.value.length<1){
alert("新密码至少为6位,请重新输入!");myform.pwd.focus();return;
}
if (myform.pwd1.value==""){
alert("请确认新密码!");myform.pwd1.focus();return;
}
if (myform.pwd.value!=myform.pwd1.value){
alert("您两次输入的密码不一致,请重新输入!");myform.pwd.focus();return;
}
if(myform.cardno.value==""){
alert("请证件号码!");myform.cardno.focus();return;
}
if (myform.email.value==""){
alert("请输入Email地址!");myform.email.focus();return;
}
var i=myform.email.value.indexOf("@");
var j=myform.email.value.indexOf(".");
if((i<0)||(i-j>0)||(j<0)){
alert("您输入的Email地址不正确,请重新输入!");myform.email.value="";myform.email.focus();return;
}
myform.submit();
}
function checkU(myform){
if(myform.username.value==""){
alert("请输入用户名!");myform.username.focus();return;
}
if(myform.PWD.value==""){
alert("请输入密码!");myform.PWD.focus();return;
}
myform.submit();
}function checkM(myform){
if(myform.manager.value==""){
alert("请输入管理员名!");myform.manager.focus();return;
}
if(myform.PWD.value==""){
alert("请输入密码!");myform.PWD.focus();return;
}
myform.submit();
}
function CheckAll(elementsA,elementsB){
for(i=0;i<elementsA.length;i++){
elementsA[i].checked = true;
}
if(elementsB.checked ==false){
for(j=0;j<elementsA.length;j++){
elementsA[j].checked = false;
}
}
}
//判断用户是否选择了要删除的记录,如果是,则提示“是否删除”;否则提示“请选择要删除的记录”
function checkdel(delid,formname){
var flag = false;
for(i=0;i<delid.length;i++){
if(delid[i].checked){
flag = true;
break;
}
}
if(!flag){
alert("请选择要删除的记录!");
return false;
}else{
if(confirm("确定要删除吗?")){
formname.submit();
}
}
}
import java.io.*;
import java.util.*;public class connDB {
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
private static String propFileName = "C:/connDB.properties";
private static Properties prop = new Properties();
private static String dbClassName =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static String dbUrl =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop";
private static String dbUser = "sa";
private static String dbPwd = "";
private static void loadProperty() {
try {
prop.load(new FileInputStream(propFileName)); //通过文件输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME");
dbUrl = prop.getProperty("DB_URL",
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop");
dbUser = prop.getProperty("DB_USER", "sa");
dbPwd = prop.getProperty("DB_PWD", "");
}
catch (Exception e) {
e.printStackTrace();
}
} public static Connection getConnection() {
Connection conn = null;
loadProperty();
try {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
catch (Exception ee) {
ee.printStackTrace();
}
if (conn == null) {
System.err.println(
"警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" +
dbClassName + "\r\n链接位置:" + dbUrl + "\r\n用户/密码" + dbUser + "/" +
dbPwd);
}
return conn;
} /*
*功能:执行查询语句
*/
public ResultSet executeQuery(String sql) {
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
} /*
*功能:执行更新操作
*/
public int executeUpdate(String sql) {
int result = 0;
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
}
catch (SQLException ex) {
result = 0;
}
try {
stmt.close();
}
catch (SQLException ex1) {
}
return result;
} public int executeUpdate_id(String sql) {
int result = 0;
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
String ID = "select @@IDENTITY as id";
rs = stmt.executeQuery(ID);
if (rs.next()) {
int autoID = rs.getInt("id");
result = autoID;
}
}
catch (SQLException ex) {
result = 0;
}
return result;
} /*
*功能:关闭数据库的连接
*/
public void close() {
try {
if (rs != null) {
rs.close();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (stmt != null) {
stmt.close();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (conn != null) {
conn.close();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
}}
public String chStr(String str){
if(str==null){
str="";
}else{
try{
str=(new String(str.getBytes("iso-8859-1"),"GB2312")).trim();
}catch(Exception e){
e.printStackTrace(System.err);
}
}
return str;
}
/***************************************************
*method name:convertStr()
*method function:显示文本中的回车换行、空格及保证HTML标记的正常输出
*return value: String
*2006-01-08
****************************************************/
public String convertStr(String str1){
if(str1==null){
str1="";
}else{
try{
//replaceAll(String str1,String str2)方法为JDK1.4.x的新方法,使用str2替换字符串中的所有str2字符串
str1=str1.replaceAll("<","<");//替换字符串中的"<"和">"字符,保证HTML标记的正常输出
str1=str1.replaceAll(">",">");
str1=str1.replaceAll(" "," ");
str1=str1.replaceAll("\r\n","<br>");
}catch(Exception e){
e.printStackTrace(System.err);
}
}
return str1;
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="secord.css" rel="stylesheet" type="text/css" />
</head><body>
<table width="800" border="0">
<tr>
<td colspan="3"><p> </p>
<p> </p>
<p><img src="tl_curve_white.gif" width="6" height="6" /></p>
<p> </p></td>
</tr>
<tr>
<td width="124" height="27"> </td>
<td width="588">**List</td>
<td width="74">search</td>
</tr>
<tr>
<td height="17">User Manage</td>
<td colspan="2" rowspan="4"><p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p></td>
</tr>
<tr>
<td height="20">Product Manage </td>
</tr>
<tr>
<td height="19">Department Manag<span class="StoryTitle">e</span> </td>
</tr>
<tr>
<td height="20"> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" class="sub"> </td>
</tr>
</table>
</body>
</html>
FONT-SIZE: 12px; COLOR: #666666; FONT-FAMILY: "宋体"
}
.copyright2 {
FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: "宋体"
}
.blue {
FONT-SIZE: 12px; COLOR: #000033; FONT-FAMILY: "宋体"
}
.gray {
FONT-SIZE: 12px; COLOR: #636563; FONT-FAMILY: "宋体"
}
.red {
FONT-SIZE: 12px; COLOR: #ff0000; FONT-FAMILY: "宋体"
}
.redbold {
FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ff0000; FONT-FAMILY: "宋体"; TEXT-DECORATION: blink
}
.bluebold {
FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #000033; FONT-FAMILY: "宋体"
}
.button {
BORDER-RIGHT: #ffffff 0px; BACKGROUND-POSITION: center center; BORDER-TOP: #ffffff 0px; FONT-SIZE: 12px; BACKGROUND-IMAGE: url(../images/button.jpg); BORDER-LEFT: #ffffff 0px; WIDTH: 60px; CURSOR: hand; COLOR: #000000; BORDER-BOTTOM: #ffffff 0px; FONT-FAMILY: "宋体"; HEIGHT: 20px
}
.button2 {
BORDER-RIGHT: #ffffff 0px; BACKGROUND-POSITION: center center; BORDER-TOP: #ffffff 0px; FONT-SIZE: 12px; BACKGROUND-IMAGE: url(../images/button.jpg); BORDER-LEFT: #ffffff 0px; WIDTH: 40px; CURSOR: hand; COLOR: #000000; BORDER-BOTTOM: #ffffff 0px; FONT-FAMILY: "宋体"; HEIGHT: 20px
}
.whitelogo {
FONT-WEIGHT: bold; FONT-SIZE: 36px; COLOR: #ffffff; FONT-FAMILY: "黑体"
}
.whitelogo2 {
FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #ffffff; FONT-FAMILY: "黑体"
}
A {
COLOR: #000033; TEXT-DECORATION: none
}
A:hover {
COLOR: #ff3300; TEXT-DECORATION: none
}
.list {
TABLE-LAYOUT: fixed; BORDER-COLLAPSE: collapse
}
.title {
FONT-WEIGHT: bold; FONT-SIZE: 32px; FONT-FAMILY: "隶书"
}
.title2 {
FONT-WEIGHT: bold; FONT-SIZE: 17px; FONT-FAMILY: "隶书"
}
.lishu {
FONT-WEIGHT: bold; FONT-SIZE: 15px; FONT-FAMILY: "隶书"
}
.heiti {
FONT-SIZE: 15px; FONT-FAMILY: "黑体"
}
.kaiti {
FONT-SIZE: 15px; FONT-FAMILY: "楷体_GB2312"
}