发送邮件的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 

解决方案 »

  1.   

    重复问题,看另一个的回复!可以确认是对方服务器主动拒绝了你的连接,换sina的看看
      

  2.   

    http://blog.csdn.net/yirentianran/archive/2008/04/24/2323652.aspx
      

  3.   

    ant介绍:与GNU make工具类似的 一种构建工具使用java编写,开放源代码由apache组织负责开发和维护ant build文件:
    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可以像命令行参数一样明确指定
      

  4.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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
      

  5.   

    //判断用户的输入是否合法
    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();
    }
    }
    }
      

  6.   

    package com.wgh.DB;import java.sql.*;
    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);
        }
      }}
      

  7.   

    public class chStr {
            
            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("<","&lt;");//替换字符串中的"<"和">"字符,保证HTML标记的正常输出
                     str1=str1.replaceAll(">","&gt;");
                     str1=str1.replaceAll(" ","&nbsp;");
                     str1=str1.replaceAll("\r\n","<br>");
                   }catch(Exception e){
                           e.printStackTrace(System.err);
                   }
               }
               return str1;
           }
    }
      

  8.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <!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>&nbsp;</p>
        <p>&nbsp;</p>
        <p><img src="tl_curve_white.gif" width="6" height="6" /></p>
        <p>&nbsp;</p></td>
      </tr>
      <tr>
        <td width="124" height="27">&nbsp;</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>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</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">&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td colspan="2" class="sub">&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>
      

  9.   

    .copyright {
    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"
    }