Java 发送邮件时出错

Java 发送邮件时出错,java,email,jakarta-mail,Java,Email,Jakarta Mail,我有以下几点 Properties prop = new Properties(); prop.put(host, "localhost"); prop.put(host, "25"); 当我运行以下命令时,它会将我抛出以下错误 javax.mail.MessaginException:无法连接到SMTP主机:localhost,端口:25; 嵌套异常为: java.net.ConnectException:连接被拒绝 我真的不明白为什么它要把这个扔给我。。。有人有什么想法吗?据我

我有以下几点

  Properties prop = new Properties();
  prop.put(host, "localhost");
  prop.put(host, "25");
当我运行以下命令时,它会将我抛出以下错误

javax.mail.MessaginException:无法连接到SMTP主机:localhost,端口:25;
嵌套异常为:

java.net.ConnectException:连接被拒绝

我真的不明白为什么它要把这个扔给我。。。有人有什么想法吗?据我所知,我的smtp服务器实际上已启动并正常工作:S


编辑:如果我理解正确,它将远程连接到我的机器。。为什么?不应该是。。。这意味着要远程连接到
主机

我认为您有将主机设置为不正确的属性:

prop.put(host, "localhost");
这将创建一个属性,其密钥为主机中的任何内容,并将其称为localhost。我猜你的属性不是你想象的那样,所以JavaMail使用了默认的localhost

您可能希望这样:

 props.put("mail.smtp.host", host);
 props.put("mail.smtp.port", port);

我认为您具有将主机设置为不正确的属性:

prop.put(host, "localhost");
这将创建一个属性,其密钥为主机中的任何内容,并将其称为localhost。我猜你的属性不是你想象的那样,所以JavaMail使用了默认的localhost

您可能希望这样:

 props.put("mail.smtp.host", host);
 props.put("mail.smtp.port", port);

telnet localhost 25
有响应吗?这就是问题所在。。为什么要转到本地主机?这意味着要连接到主机:s
prop.put(主机,“localhost”)-看起来它要转到localhost?如果我将其中的“localhost”更改为任何内容,它仍然会抛出与其中的localhost相同的错误。
telnet localhost 25
有响应吗?就是这样。。为什么要转到本地主机?这意味着要连接到主机:s
prop.put(主机,“localhost”)-看起来它是要到localhost?如果我将其中的“localhost”更改为任何内容,它仍然会抛出与其中的localhost相同的错误。+1:另外,
host
是方法
sendmail
的一个参数,从我的角度来看,这没有意义。由于属性错误,
localhost
25
被用作默认值。+1:此外,
host
是方法
sendmail
的一个参数,从我的观点来看,这没有意义。由于属性错误,
localhost
25
用作默认值。