为什么JavaMail没有进行身份验证?

时间:2010-02-09 19:40:38

标签: java smtp javamail

我们今天发现,对于我们的两个客户,JavaMail没有进行身份验证,因此我们的产品无法发送电子邮件。我们多年来一直在通过我们自己的服务器发送电子邮件,以及其他几个客户,我们认为我们正在使用身份验证。

代码如下:

    transport = session.getTransport("smtp");
    transport.connect(hostName, port, user, password);

根据文档here,如果我们使用这种形式的connect()方法,JavaMail应该使用身份验证。我们没有设置任何属性,但如果我正确地阅读该页面,我们不需要。

我们正在使用JBoss 4.2.1.GA中的mail.jar。

我们需要采取哪些不同的做法?

更新:如果我在该文档页面上使用其他方法(设置mail.smtp.auth属性并提供Authenticator),则身份验证最终会起作用。但是我们用这种方法做错了什么?

2 个答案:

答案 0 :(得分:2)

尝试使用props.put("mail.debug", "true");获取可能的调试信息,以便您获得更多信息。

此外,如果这是一个Windows框,请查看防火墙或防病毒运行:http://forums.sun.com/thread.jspa?threadID=590866

答案 1 :(得分:1)

我终于发现我在呼唤:

transport.send(message, message.getAllRecipients());

,这是一个静态方法,而不是:

transport.sendMessage(message, message.getAllRecipients());

我认为这就是为什么它没有进行身份验证,所以我认为这是真正的答案。如果我发布了那段代码会有所帮助,但我不知道问题出在哪里。不能为我的生活弄清楚为什么Transport.send()是一个静态方法,但如果你知道,请tell me

相关问题