Java James服务器连接失败异常

Java James服务器连接失败异常,java,jakarta-mail,james,Java,Jakarta Mail,James,我试图将Javamail应用程序连接到James服务器,但我得到了 javax.mail.MessaginException:无法连接到SMTP主机:localhost,端口:4555; 嵌套异常为:java.net.SocketException:无效参数:connect 下面是代码,这给我带来了一个小问题: import java.security.Security; import java.io.IOException; import java.io.PrintWriter; impor

我试图将Javamail应用程序连接到James服务器,但我得到了

javax.mail.MessaginException:无法连接到SMTP主机:localhost,端口:4555; 嵌套异常为:java.net.SocketException:无效参数:connect

下面是代码,这给我带来了一个小问题:

import java.security.Security;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class mail  {

public static void main(String[] argts)
{
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());


       String mailHost = "your.smtp.server";



        String to = "blue@localhost";



        String from = "red@localhost";
        String subject = "jdk";
        String body = "Down to wind";

        if ((from != null) && (to != null) && (subject != null)  && (body != null)) // we have mail to send
        {

        try {


            //Get system properties
            Properties props = System.getProperties();


            props.put("mail.smtp.user", "red");
            props.put("mail.smtp.host", "localhost");
            props.put("mail.debug", "true");
            props.put("mail.smtp.port", 4555);


            props.put("mail.smtp.socketFactory.port", 4555);
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");

            Session session = Session.getInstance(props,null);


            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.setRecipients(Message.RecipientType.TO, new InternetAddress[] { new InternetAddress(to) });
            message.setSubject(subject);
            message.setContent(body, "text/plain");
            message.setText(body);
            Transport.send(message);


            System.out.println("<b>Thank you.  Your message to " + to + " was successfully sent.</b>");

        } catch (Throwable t) {
           System.out.println("Teri maa ki "+t);
        }


        }

    }




}
导入java.security.security;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.util.Properties;
导入javax.mail.*;
导入javax.mail.internet.*;
公营邮件{
公共静态void main(字符串[]参数)
{
addProvider(新的com.sun.net.ssl.internal.ssl.Provider());
String mailHost=“your.smtp.server”;
字符串to=”blue@localhost";
字符串from=”red@localhost";
字符串subject=“jdk”;
String body=“下风”;
如果((from!=null)&&&(to!=null)&&&(subject!=null)&&(body!=null))//我们有邮件要发送
{
试一试{
//获取系统属性
Properties props=System.getProperties();
props.put(“mail.smtp.user”,“red”);
put(“mail.smtp.host”、“localhost”);
props.put(“mail.debug”,“true”);
props.put(“mail.smtp.port”,4555);
props.put(“mail.smtp.socketFactory.port”,4555);
put(“mail.smtp.socketFactory.class”、“javax.net.ssl.SSLSocketFactory”);
props.put(“mail.smtp.socketFactory.fallback”、“false”);
Session Session=Session.getInstance(props,null);
Message Message=新的mimessage(会话);
message.setFrom(新的InternetAddress(from));
message.setRecipients(message.RecipientType.TO,新InternetAddress[]{new InternetAddress(TO)});
message.setSubject(主题);
message.setContent(正文,“文本/普通”);
message.setText(正文);
传输。发送(消息);
System.out.println(“谢谢,您发送给“+到+”的消息已成功发送。”);
}捕获(可丢弃的t){
系统输出打印号(“Teri maa ki”+t);
}
}
}
}
提前感谢。:)

这两行代码使您的代码连接到本地主机(您自己的机器?),端口4555。我假定问题中的SMTP服务器正在其他主机上运行。将主机名放在第一个属性中,将正确的端口(通常为25)放在第二个属性中,就可以了

如果这没有帮助,请提供有关您的设置的详细信息:您运行SMTP服务器的主机、它正在侦听的端口、它是否使用SSL(根据您的代码,是吗?),您在哪里运行客户端

这两行代码使您的代码连接到本地主机(您自己的机器?),端口4555。我假定问题中的SMTP服务器正在其他主机上运行。将主机名放在第一个属性中,将正确的端口(通常为25)放在第二个属性中,就可以了

如果这没有帮助,请提供有关您的设置的详细信息:您运行SMTP服务器的主机、它正在侦听的端口、它是否使用SSL(根据您的代码,是吗?),您在哪里运行客户端

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