java - James服务器连接失败异常

标签 java jakarta-mail james

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

javax.mail.MessagingException:无法连接到 SMTP 主机:localhost,端口:4555; 嵌套异常是:java.net.SocketException:无效争论:连接

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

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);
        }


        }

    }




}

提前致谢。 :)

最佳答案

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

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

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

关于java - James服务器连接失败异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1481769/

相关文章:

java - GWT、Maven - 无法为对象堆保留足够的空间

java - 如何在带有 JavaMail 的 Java EE 应用程序中使用 Authenticator 子类

终端中存在 jar 文件的 java.lang.NoClassDefFoundError

java - Play框架2.0尝试级联删除时出错 "Parameter "#1"is not set; SQL statement: delete "

maven - 如何覆盖 jetty 的 javax.mail 版本?

java - 如何通过基于ejb 3.1注释的邮件发送

java - 在 Java 中使用 POP3 根据指定的日期时间检索电子邮件

Javamail - 将邮件从本地主机发送到外部帐户

java - 如何将监听器挂接到 SSL 握手?

java - 使用 Cassandra 的 Java 驱动程序进行 Multi-Tenancy