2015-05-07 31 views
0

我目前已經啓動並運行郵件服務器。 我可以通過mywebsite.com/roundcube/登錄我的網絡郵件客戶端可以使用webmail,但不能通過javax.mail發送

Web郵件允許我正確地發送和接收電子郵件。日誌顯示所有的郵件進出,並沒有問題。我已經從這裏發送到我的Gmail賬戶並返回。

但是,我真正想要做的是使用javax郵件從java發送一些郵件。當我去通過

Transport.send(message); 

我得到以下輸出發送消息

final String username = "myusername"; 
    final String password = "mypassword"; 

Properties props = new Properties(); 
     props.put("mail.smtp.host", "localhost"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.port", "25"); 
     props.put("mail.debug","true"); 

     // Get the Session object. 
     Session session = Session.getInstance(props, 
       new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(username, password); 
        } 
       }); 
     session.setDebug(true); 

這樣我就可以如下自動電子郵件

我已經試過配置

DEBUG: JavaMail version 1.5.0-b01 
DEBUG: setDebug: JavaMail version 1.5.0-b01 
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] 
DEBUG SMTP: useEhlo true, useAuth true 
DEBUG SMTP: useEhlo true, useAuth true 
DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false 
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; 
    nested exception is: 
    java.net.SocketException: Permission denied: connect 

我可以通過本地主機telnet到端口25

想法?

編輯:用netstat信息

[email protected]:~/Development$ netstat -plnt | grep 25 
tcp  0  0 0.0.0.0:25    0.0.0.0:*    LISTEN  - 

編輯2: 我使用Postfix的+快遞和基於從 http://flurdy.com/docs/postfix/#data

+0

'netstat -tulpn'的輸出? – masegaloeh

+0

每個請求添加的Netstat信息 –

回答

4

我設置了默認的Java首選的IPv6,嘗試設置-Djava.net.preferIPv4Stack=true JVM屬性強制應用程序使用IPv4套接字進行通信。

+0

設置是修復。非常感謝! –

相關問題