我正在使用Javamail API尝试在我的java代码中发送电子邮件。问题发生在特定的一行。
部分代码是:
URLConnection c = u.openConnection();
c.setDoInput(false);
c.setDoOutput(true);
c.connect();
错误发生在代码的c.connect()行。我得到的错误是:
connect. Timeout = -1
java.net.ConnectException: Connection refused: connect
这就是我得到的所有描述。我不知道如何解决这个问题。请帮忙。
答案 0 :(得分:1)
查看this page以获取如何发送电子邮件的示例。 您应该使用传输类来发送电子邮件。
public static void send(String smtpServer, String to, String from
, String subject, String body) throws Exception
{
Properties props = System.getProperties();
// -- Attaching to default Session, or we could start a new one --
props.put("mail.smtp.host", smtpServer);
Session session = Session.getDefaultInstance(props, null);
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to, false));
// -- We could include CC recipients too --
// if (cc != null)
// msg.setRecipients(Message.RecipientType.CC
// ,InternetAddress.parse(cc, false));
// -- Set the subject and body text --
msg.setSubject(subject);
msg.setText(body);
// -- Set some other header information --
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
// -- Send the message --
Transport.send(msg);
System.out.println("Message sent OK.");
}
修改强>
由于你的评论...
检查是否有人阻止端口25(防火墙,其他应用程序)
身份验证也可能是一个问题,而不是找到一个好的例子here
props.put( "mail.smtp.auth", "true" );
Authenticator auth = new SMTPAuthenticator( "me@sender.net", "mypassword" );