2013-10-25 79 views
0

我正在使用javax.mail.jar發送郵件時遇到(無法連接到SMTP主機)錯誤。我能夠通過smtp.gmail.com發送郵件,但是當我試圖連接到我的公司郵件服務器時,我收到了錯誤。我嘗試從telnet,我能夠從telnet發送郵件,另一個python程序也在運行,它使用相同的郵件服務器(ip和端口)發送郵件,我們的bugzilla服務器也運行在相同的ip和端口上,並且它已成功發送郵件。我試圖從java配置相同的以及從log4j到SMTP appender,但沒有成功。無法連接到SMTP主機)發送郵件時出現錯誤

請指導我。

在此先感謝

我的代碼如下 -

private Session getSession() 
{ 
    Authenticator authenticator = new Authenticator(); 
    Properties properties = new Properties(); 
    properties.setProperty("mail.smtp.submitter", authenticator 
    .getPasswordAuthentication().getUserName()); 
    properties.setProperty("mail.smtp.auth", "true"); 
    properties.put("mail.smtp.socketFactory.port", "25"); 
    //properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); 
    properties.setProperty("mail.smtp.starttls.enable", "true"); 
    properties.setProperty("mail.smtp.host", smtpServer); 
    properties.setProperty("mail.smtp.port", smtpPort); 

    return Session.getInstance(properties, authenticator); 
} 

private class Authenticator extends javax.mail.Authenticator 
{ 
    private final javax.mail.PasswordAuthentication authentication; 
    public Authenticator() 
    { 
    authentication = 
     new javax.mail.PasswordAuthentication(username, password); 
    } 
@Override 
protected javax.mail.PasswordAuthentication getPasswordAuthentication() 
{ 
    return authentication; 
} 
} 

public boolean sendEmail() throws MessagingException 
{ 
    boolean isSuccess = false; 
    String setBody = ""; 
    String setSubject = ""; 
    try 
    { 
     Message message = new MimeMessage(getSession()); 
     setReceipients(message); 
     message.addFrom(new InternetAddress[] 
     { new InternetAddress(emailFrom, "Notification") }); 
     setSubject = emailSubject; 
     message.setSubject(setSubject); 
     setBody = emailBody + "\nThis is a System Generated Mail"; 
     message.setContent(setBody, "text/plain"); 
     Transport.send(message); 
     log.info("Mail Sent Successfully to - " + emailTo); 
     isSuccess = true; 
    } 
    catch (UnsupportedEncodingException ex) 
    { 
     log.error("Error in sending Mail without Attachment- " 
      + ex.getMessage()); 
     log.warn("Mail Sending Failed for Mail ID:" + emailTo); 
    } 
    catch (SendFailedException e) 
    { 
     log.error("Invalid Addresses \"" + emailTo + "\" specified:" 
      + e.getMessage()); 
     log.warn("Mail Sending Failed for Mail ID:" + emailTo); 
    } 
    catch (Exception e) 
    { 
     log.error("Error in sending Mail without Attachment- " 
     + e.getMessage()); 
      log.warn("Mail Sending Failed for Mail ID:" + emailTo); 
    } 
    return isSuccess; 
    } 
+0

請張貼一些代碼。今天我的水晶球有點混濁。 – 2013-10-25 03:53:07

+0

以下是代碼 – user2918390

回答

0

JavaMail的常見問題有debugging tips

這將有助於查看來自JavaMail的調試輸出。

可能你的防火牆或防病毒程序阻塞了端口25.

相關問題