1個簡單JSP問題,進來留言的都有高分。謝謝


發送郵件的簡單例子,一共2個JSP文件。

main.jsp
<html>
<head>
<title>在JSP中發送郵件</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb239">
</head>
<body bgcolor="#FFFFFF">
<div align="center">
  <p><b>如何在JSP中發送郵件</b> </p>
  <form method="post" action="compose.jsp">
    <table width="70%" border="1">
      <tr> 
        <td bgcolor="#CCCCFF" width="31%"> 
          <div align="right"><b><font color="#FF0033">收件人地址:</font></b></div>
        </td>
        <td bgcolor="#FFCCCC" width="69%"> 
          <input type="text" name="recipients" size="40">
        </td>
      </tr>
      <tr> 
        <td bgcolor="#CCCCFF" width="31%"> 
          <div align="right"><b><font color="#FF0033">主題:</font></b></div>
        </td>
        <td bgcolor="#FFCCCC" width="69%"> 
          <input type="text" name="subject" size="40">
        </td>
      </tr>
      <tr> 
        <td bgcolor="#CCCCFF" width="31%"> 
          <div align="right"><b><font color="#FF0033">內容:</font></b></div>
        </td>
        <td bgcolor="#FFCCCC" width="69%"> 
          <textarea name="content" cols="40" rows="6"></textarea>
        </td>
      </tr>
      <tr> 
        <td bgcolor="#CCCCFF" width="31%"> 
          <div align="right"><b><font color="#FF0033">發信人地址:</font></b></div>
        </td>
        <td bgcolor="#FFCCCC" width="69%"> 
          <input type="text" name="addresser" size="40">
        </td>
      </tr>
      <tr> 
        <td bgcolor="#CCCCFF" width="31%"> 
          <div align="right"><b><font color="#FF0033">郵件服務器:</font></b></div>
        </td>
        <td bgcolor="#FFCCCC" width="69%"> 
          <input type="text" name="host" size="40">
        </td>
      </tr>
      <tr bgcolor="#FF9966"> 
        <td colspan="2"> 
          <div align="center"> 
            <input type="submit" name="Submit" value="發 郵 件">
            <input type="reset" name="Submit2" value="重   寫">
          </div>
        </td>
      </tr>
    </table>
  </form>
  <p>&nbsp;</p>
</div>
</body>
</html>

compose.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="sun.net.smtp.SmtpClient,java.io.*"%>
<%
String addresser,recipients,subject,content,mailserver;
addresser=request.getParameter("addresser");
recipients=request.getParameter("recipients");
subject=request.getParameter("subject");
content=request.getParameter("content");
mailserver=request.getParameter("mailserver");
try {
SmtpClient host = new SmtpClient(mailserver);/////////////////////////這行有錯
host.from(addresser);
host.to(recipients);
PrintStream MailMessage=host.startMessage();
MailMessage.println("收件人地址:"+recipients);
MailMessage.println("主題:"+subject);
MailMessage.println("內容:"+content);
MailMessage.println("發信人地址:"+addresser);
MailMessage.println("郵件服務器:"+mailserver);
host.closeServer();
out.println("成功發送");
}
catch(Exception e){
out.println(e.getMessage());
}
%>
就是那一行出異常,請大家幫我改改,謝謝

28 个解决方案

#1


創建這個對象時SmtpClient﹐參數對嗎﹖
我沒有下載這個包﹐沒法測試﹗

#2


郵件我不是很熟悉哈~

#3


用的什么服務器?

tomcat sun.net.smtp.SmtpClient 包要放到web-inf/lib下

#4


或者根據情況加到classpath中

#5


沒有用純jsp發過信,一直用bean來發信
幫樓主頂一下

#6


頂一下

#7


sun.net.smtp.SmtpClient這個包就在j2sk\jre\lib\rt.jar里。
我用一個126郵箱自己發給自己,郵件服務器填的是pop3.126.com

#8


頂一下

#9


把報錯信息貼出來啦

#10


關注

#11


還沒用到這個,幫頂

#12


//下面的代碼是以前我用的.剛才測試了一下.正常無錯

<%@ page contentType="text/html; charset=GB2312" language="java" import="java.util.*,java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%>

<html>
<head>
<title>javaMail郵件發送</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body leftmargin="0" topmargin="0">

  <%     java.util.Date d = new java.util.Date();
         String dd,overTime,str1,str2,str4,str5,str6;
         int result=1;
 String mailserver,From,To,Subject,messageText;
 boolean sessionDebug=false;
 
 InternetAddress address[]=null;
 
    mailserver="用來發信的smtp郵局地址";
    
 From = new String(request.getParameter("email").trim()); //發信人
 
 To = new String(request.getParameter("toEmail").trim()); //收信人

 Subject = new String(request.getParameter("Subject").trim());

 messageText = new String(request.getParameter("body").trim());

  if(messageText!=null&&Subject!=null&&From!=null&&To!=null)
  {
  
   try{
 java.util.Properties props=System.getProperties();
 props.put("mail.host",mailserver);
 props.put("mail.transport.protocol","smtp");
 props.put("mail.transport.user","用來發信的smtp郵箱帳號");
 props.put("mail.transport.password","用來發信的smtp郵箱密碼");
         javax.mail.Session mailSession=javax.mail.Session.getDefaultInstance(props,null);
 mailSession.setDebug(sessionDebug);

      Message msg=new MimeMessage(mailSession);

        msg.setFrom(new InternetAddress(From));

      address=InternetAddress.parse(To,false);

      msg.setRecipients(Message.RecipientType.TO,address);

      msg.setSubject(Subject);

      msg.setSentDate(new java.util.Date());

      messageText=messageText + "<br><br>在線郵件發送系統";
      msg.setText(messageText);

                              msg.setContent(messageText,"text/html;charset=GB2312");
      
      Transport.send(msg);

      System.out.println("javaMail SendMail");
     }
     catch(MessagingException mex){
       mex.printStackTrace();
     }
  }
 
%>
</body>
</html>

#13


try{
      Properties props = new Properties();
      props.put("mail.smtp.host", "localhost"); //存儲發送郵件服務器的信息
      props.put("mail.smtp.auth", "true"); //同時通過驗證
      Session s = session.getInstance(props);//根據屬性新建一個郵件會話
      s.setDebug(true);
      MimeMessage message = new MimeMessage(s);//由郵件會話新建一個消息對象
      InternetAddress fromAddress = new InternetAddress("webmaster@xxx.com");
      message.setFrom(fromAddress);//設置發件人
      InternetAddress toAddress = new InternetAddress(to);
      message.setRecipient(Message.RecipientType.TO,toAddress);

      message.setSubject(subject);//設置主題
      message.setText(content);//設置信件內容
      message.setSentDate(new Date());//設置發信時間
      message.saveChanges();//存儲郵件信息
      Transport transport=s.getTransport("smtp");
      transport.connect("localhost", "webmaster@xxx.com", "web");
      transport.sendMessage(message, message.getAllRecipients());
      transport.close();
      System.out.println("郵件發送成功!");
    }
    catch(Exception ex){
      System.out.println(ex.getMessage());
      }

#14


#15


up···

#16


up

#17


不太懂呀!

#18


沒有做過,幫你頂!

#19


路過幫頂!^^^^^^^^^

#20


怎么沒有這些啊 --那怎么發啊-
 String mailserver,From,To,Subject,messageText;
 boolean sessionDebug=false;
 
 InternetAddress address[]=null;
 
    mailserver="發信服務器";
    
 From = new String(request.getParameter("email").trim()); //發信人
 
 To = new String(request.getParameter("toEmail").trim()); //收信人

 Subject = new String(request.getParameter("Subject").trim());//標題

 messageText = new String(request.getParameter("body").trim());//內容
在網上找找其他的參數看看>)

#21


幫頂!

#22


好 頂

#23


up 接分! ^-^

#24


ding

#25


up

#26


幫你up
還沒做過郵件那
^_^

#27


收藏

#28


恩,我正需要這個呢
搬個凳子坐下來學習
呵呵

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com