【发布时间】:2011-03-03 10:58:22
【问题描述】:
我正在申请在 jsp 中从本地主机发送电子邮件,我发现类似 无法连接到 SMTP 主机:本地主机,端口:25;嵌套异常是:java.net.ConnectException:连接被拒绝:连接 请检查并给我解决方案或想法,如果你有 .for 我正在使用下面的代码。 提前谢谢你。
<%@ page language="java" import="javax.naming.*,java.io.*,javax.mail.*,
javax.mail.internet.*,com.sun.mail.smtp.*"%>
<html>
<head>
<title>Mail</title>
</head>
<body>
<%
try{
Session mailSession = Session.getInstance(System.getProperties());
Transport transport = new SMTPTransport(mailSession,new URLName("localhost"));
transport.connect("localhost",25,null,null);
MimeMessage m = new MimeMessage(mailSession);
m.setFrom(new InternetAddress(%><%request.getParameter("from")%><%));
Address[] toAddr = new InternetAddress[] {
new InternetAddress(%><%request.getParameter("to")%><%)
};
m.setRecipients(javax.mail.Message.RecipientType.TO, toAddr );
m.setSubject(%><%request.getParameter("subject")%><%);
m.setSentDate(new java.util.Date());
m.setContent(%><%request.getParameter("description")%><%, "text/plain");
transport.sendMessage(m,m.getAllRecipients());
transport.close();
out.println("Thanks for sending mail!");
}
catch(Exception e){
out.println(e.getMessage());
e.printStackTrace();
}
%>
</body>
</html>
【问题讨论】:
-
25 可能不是端口。许多 smtp 服务器使用不同的端口。例如eatj java托管使用487。
-
确保您的传输实例已正确关闭,将其放入 try finally 块中以确保它。