嗨我写了这段代码来连接SMTP它对smtp.gmail.com工作正常,但对于我的客户端没有用于端口号为25的IP 10.5.128.146。
这里的代码是.....你可以建议我任何解决方案。
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailSSL {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "10.5.128.146");
props.put("mail.smtp.socketFactory.port", "25");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "25");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username","password");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xyz@mydomain.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("abc@otherdomain.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);
}
}
}
显示连接超时错误。 任何人都可以告诉我这是一个编程问题或服务器方面的问题。如果服务器方面那么我可以建议他们做什么。
赞美中的Thnaks
答案 0 :(得分:2)
您似乎修改了GMail连接代码段。 GMail需要SSL,但传统的“端口25”SMTP服务器不需要,因此握手不能正常工作。
我建议删除mail.smtp.socketFactory.class和mail.smtp.auth属性。
答案 1 :(得分:1)
超时表明端口25是防火墙的,防火墙只是丢弃数据包,而不是拒绝连接回复。
答案 2 :(得分:0)
检查您是否能够在端口25上为您的IP进行远程登录...如果您能够远程登录,这意味着该端口没有防火墙并且存在连接问题....如果它被阻止通过防火墙,您需要应用规则来允许此连接!!!