Java 使用SMTP发送电子邮件
您好,我已经编写了此代码来连接SMTP。对于SMTP.gmail.com,它工作正常,但对于IP 10.5.128.146(端口号25)的客户端,它不工作 这里的代码是。。。。。你能给我提个解决办法吗Java 使用SMTP发送电子邮件,java,smtp,Java,Smtp,您好,我已经编写了此代码来连接SMTP。对于SMTP.gmail.com,它工作正常,但对于IP 10.5.128.146(端口号25)的客户端,它不工作 这里的代码是。。。。。你能给我提个解决办法吗 import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import j
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 in Adance超时表示端口25已安装防火墙,防火墙只是在丢弃数据包,而不是在拒绝连接的情况下应答。超时表示端口25已安装防火墙,防火墙只是在丢弃数据包,而不是用拒绝的连接进行回复。检查您是否能够在端口25上为您的IP远程登录…如果您能够远程登录,这意味着该端口没有防火墙,并且存在连接问题…如果它被防火墙阻止,您需要应用规则来允许此连接 检查您是否能够在端口25上为您的IP远程登录…如果您能够远程登录,这意味着该端口没有防火墙,并且存在连接问题…如果它被防火墙阻止,您需要应用规则来允许此连接 您似乎修改了GMail连接片段。GMail需要SSL,但传统的“端口25”SMTP服务器不需要SSL,因此握手无法正常工作
我建议删除mail.smtp.socketFactory.class和mail.smtp.auth属性。您似乎修改了GMail连接片段。GMail需要SSL,但传统的“端口25”SMTP服务器不需要SSL,因此握手无法正常工作
我建议删除mail.smtp.socketFactory.class和mail.smtp.auth属性。smtps通常不是端口465(而不是25)?smtp日志中是否有任何输出?我过去遇到过很多麻烦,主要是因为(在公司网络的情况下)我的服务器ip地址不允许发送电子邮件,有防火墙或类似的东西。检查smtp日志,看看里面是否有任何有用的东西。如果连连接记录都没有,请查看是否可以从服务器ping smtp服务器。我有从服务器ping到服务器的ping,但回复请求超时smtps不是通常端口465(而不是25)吗?smtp日志中是否有任何输出?我过去遇到过很多麻烦,主要是因为(在公司网络的情况下)我的服务器ip地址不允许发送电子邮件,有防火墙或类似的东西。检查smtp日志,看看里面是否有任何有用的东西。如果没有连接记录,请查看是否可以从服务器ping smtp服务器。我已从服务器ping到那里,但答复请求超时。如果我删除smtp.auth.properties,那么我是否可以chk用户名和密码?如果删除属性
mail.smtp.socketFactory.class
,它将使用默认值(非SSL)SocketFactory,当您连接到端口25时,应该可以。如果您想进行SSL,则需要使用SSL SMTP端口(如465)。如果我删除SMTP.auth.properties,那么我是否能够chk用户名和密码?如果您删除属性mail.SMTP.SocketFactory.class
,则将使用默认值(非SSL)SocketFactory,当您连接到端口25时,应该可以。如果您想使用SSL,则需要使用SSL SMTP端口(如465)