我正在尝试从我的java网络应用程序发送邮件,其中我的邮件服务器主机是 exg6.exghost.com 但是它给出了连接超时错误。当我的主持人 smtp.gmail.com 时,相同的代码可以正常工作。
我的代码是
Properties props = new Properties();
props.put("mail.smtp.host", "exg6.exghost.com");
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "false");
Session session1 = Session.getInstance(props,
new javax.mail.Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,password);
}
});
try {
Message message = new MimeMessage(session1);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("xyz@gmail.com"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler," +
"\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
我还尝试 mail.smtp.auth 到 true ,但连接超时了。
请帮忙。
答案 0 :(得分:1)
请参阅tips for debugging connection problems的JavaMail常见问题解答。
您似乎在默认(纯文本)SMTP端口上进行连接。您的服务器很可能只接受SMTP-over-SSL端口上的连接。加上这个:
props.put("mail.smtp.ssl.enable", "true");