我一直在开发一个程序,用于从基于桌面的Java应用程序发送电子邮件。
当我使用Google SMTP服务器(smtp.gmail.com)测试时,该程序运行正常,但是当我为其他smtp服务器测试它时会产生错误 -
javax.mail.MessagingException: Could not connect to SMTP host:
smtp.collaborationhost.net, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
我在Eclipse中运行代码。
以下是代码段 -
public class Emailer {
public static void main(String[] args) {
String name = "Testing";
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.collaborationhost.net");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("qwert@xyzcompany.com","*******");
}
});
try
{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("qwert@xyzcompany.com"));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("testgmail.com"));
message.setSubject("Generic Mail Test from Eclipse !!!");
message.setText("This is a Test Mail, sent from Local Eclipse System via Google SMTP server. \n\n" + "Regards, \n" + name + "." );
Transport.send(message);
System.out.println("Message Sent !!!");
}
catch(Exception e)
{
System.out.println(e);
}
}
}
答案 0 :(得分:0)
此JavaMail FAQ条目将为您debug connection problems提供帮助。在这种情况下,我怀疑其他服务器没有使用与Gmail相同的端口,因此您需要更改配置。
此外,您可以通过更正其中一些common mistakes来简化您的计划。