百分啼血求教,一个星期了,请大家帮我看看,这里到底哪错了,高人们赐教
我在练习一个javamail的小程序,下面是我的源码,很简单,请大家看看
SendMail.html
<html>
<BODY>
<p>
<FORM action="SendMail.jsp" method="post">
<TABLE align="center">
<TR>
<TD width="50%">
收件人:<input name="to" size="25">
</TD>
<TD width="50%">
寄信人:<input name="from" size="25">
</TD>
</TR>
<TR>
<TD colspan="2">
主题:<BR><input name="subject" size="50">
</TD>
</TR>
<TR>
<TD colspan="2">
<p>邮件正文:
<TEXTAREA name="text" rows=25 cols=85>
</TEXTAREA>
</p>
</TD>
</TR>
</TABLE>
<input type="submit" name="cb_submit" value="发送">
<input type="reset" name="cb_reset" value="重写">
</FORM>
</BODY>
</HTML>
下面是SendMail.jsp
<%@ page import="javax.mail.*,javax.mail.internet.*,javax.activation.*,java.util.*"%>
<html>
<head>
<TITLE>JavaMail 电子邮件发送系统</TITLE>
</HEAD>
<BODY>
<%
try{
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", "smtp.163.com");
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(request.getParameter("from")));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));
newMessage.setSubject(request.getParameter("subject"));
newMessage.setSentDate(new Date());
newMessage.setText(request.getParameter("text"));
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
%>
<p>你的邮件已发送,请返回。</p>
<%
}
catch(MessagingException m)
{
out.println(m.toString());
}
%>
</BODY>
</HTML>
运行后提示信息:
javax.mail.SendFailedException: Sending failed; nested exception is: javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25; nested exception is: java.net.SocketException: Network is unreachable: connect
我是通过单位的代理上网,每次新打开一个浏览器时,总要提示输入密码用户名,但运行本地程序时,是不通过代理的,是不是和这有关?