2011-03-08 80 views
0
public class ConnectGmail { 

    public static void main(String args[]) throws Exception { 


    PasswordAuthentication authentication; 

    Properties props = System.getProperties(); 
    props.setProperty("mail.store.protocol", "imap"); 

    Session session = Session.getDefaultInstance(props); 
    Store store = session.getStore("imap"); 

    try { 

     store.connect(host , user , "password"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

得到这个错误。我几乎所有的协议无法连接到我的邮件服务器(JAVA)

javax.mail.MessagingException: Connection refused: connect; 
    nested exception is: 
    java.net.ConnectException: Connection refused: connect 
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:571) 
    at javax.mail.Service.connect(Service.java:288) 
    at javax.mail.Service.connect(Service.java:169) 
    at ConnectGmail.main(ConnectGmail.java:26) 

任何帮助,试过?

+0

'HOST'或'host'? 'USR'或'user'? “密码”或“身份验证”对象? – sarnold 2011-03-08 08:58:43

回答

1

您需要启用邮件认证,然后才能使用它:

设置属性mail.smtp.authtrue到enalbe认证。

如果为true,尝试使用AUTH命令对用户进行认证。默认为false。包com.sun.mail.smtp的

@see的Javadoc

+1

为什么'imap'的mail.smtp.auth'属性? – mrsrinivas 2015-09-23 04:15:44

0

请问您的ISP允许您连接到端口?

您是否必须通过代理?

尝试使用简单的telnet <host> <port>命令打开与邮件服务器的正确端口的直接连接。如果你不能,那么你的连接就不会失败,这是你的ISP不允许的。如果可以,请检查您是否使用特定的代理选项并将其添加到您的程序中。

+0

服务器名称暗示他在某种公司网络上。 对我来说,它看起来更像是他没有权限访问邮件服务器。 – jwenting 2011-03-08 09:10:52