2016-07-25 61 views
0

我有一个非常令人沮丧的问题,它试图通过Gmail通过JavaMail发送电子邮件。我的代码在从Eclipse运行时工作,但是当我通过Ant运行时,它无法连接“无法连接到SMTP主机,响应-1”错误。JavaMail smtp.gmail.com ANT vs Eclipse

我在Eclipse和Ant中都使用相同的JRE,并且没有从类路径透视图中看到任何不同的东西。

JavaMail调试日志如下 - 首先在Eclipse中成功运行;

DEBUG: JavaMail version 1.4.2 
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
DEBUG: Tables of loaded providers 
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]} 
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]} 
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 
Email Recipients = <email removed> 
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] 
DEBUG SMTP: useEhlo true, useAuth true 
DEBUG SMTP: useEhlo true, useAuth true 
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false 
220 smtp.gmail.com ESMTP b14sm9639869itd.15 - gsmtp 
DEBUG SMTP: connected to host "smtp.gmail.com", port: 465 

...现在从蚂蚁运行失败;

[java] Emailing skip report... 
    [java] DEBUG: JavaMail version 1.4.2 
    [java] DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
    [java] DEBUG: Tables of loaded providers 
    [java] DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]} 
    [java] DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]} 
    [java] DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 
    [java] Email Recipients = <email address hidden> 
    [java] DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] 
    [java] DEBUG SMTP: useEhlo true, useAuth true 
    [java] DEBUG SMTP: useEhlo true, useAuth true 
    [java] DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false 
    [java] javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1 
    [java]  at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1533) 
    [java]  at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:453) 
    [java]  at javax.mail.Service.connect(Service.java:313) 
    [java]  at javax.mail.Service.connect(Service.java:172) 
    [java]  at javax.mail.Service.connect(Service.java:121) 
    [java]  at javax.mail.Transport.send0(Transport.java:190) 
    [java]  at javax.mail.Transport.send(Transport.java:120) 
    [java]  at com.diona.skipped.record.EmailReport.sendReportEmail(Unknown Source) 
    [java]  at com.diona.skipped.record.SkipAlert.processLogs(Unknown DEBUG SMTP: EOF: [EOF] 
    [java] DEBUG SMTP: could not connect to host "smtp.gmail.com", port: 465, response: -1 

任何想法?

克里斯

+0

您的工作站位于代理之后吗? –

回答

0

你是从蚂蚁在同一台机器上运行,当您从Eclipse中运行的? JavaMail FAQ有connection debugging tips。另外,你正在使用JavaMail的一个非常旧的版本;如果可以升级到当前版本1.5.5,请升级。