2012-06-05 36 views
0

如何找到特定smtp主機的smtp端口?如何查找特定smtp.host的SMTP端口?

import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class SendMailTLS { 

    public static void main(String[] args) { 

     final String username = "[email protected]"; 
     final String password = "test"; 

     Properties props = new Properties(); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", "mail.echostar.com"); 
     props.put("mail.smtp.port", "9000"); 

     Session session = Session.getInstance(props, 
      new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication(username, password); 
      } 
      }); 

     try { 

      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress("[email protected]")); 
      message.setRecipients(Message.RecipientType.TO, 
       InternetAddress.parse("[email protected]")); 
      message.setSubject("Testing Subject"); 
      message.setText("Dear Mail Crawler," 
       + "\n\n No spam to my email, please!"); 

      Transport.send(message); 

      System.out.println("Done"); 

     } catch (MessagingException e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 

是我的代碼,但它拋出此異常,

Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Exception reading response; 
    nested exception is: 
    java.net.SocketException: Connection reset 
    at samples.SendMailTLS.main(SendMailTLS.java:47) 
Caused by: javax.mail.MessagingException: Exception reading response; 
    nested exception is: 
    java.net.SocketException: Connection reset 
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2153) 
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1912) 
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638) 
    at javax.mail.Service.connect(Service.java:317) 
    at javax.mail.Service.connect(Service.java:176) 
    at javax.mail.Service.connect(Service.java:125) 
    at javax.mail.Transport.send0(Transport.java:194) 
    at javax.mail.Transport.send(Transport.java:124) 
    at samples.SendMailTLS.main(SendMailTLS.java:42) 
Caused by: java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(Unknown Source) 
    at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89) 
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2131) 

我相信它在港口給人的問題。請幫我解決這個問題。

問候 託尼SMTP

+3

如果您知道要連接的主機,您*應該*知道該端口。否則就像知道某人住在哪裏,但不知道門牌號碼。 –

+1

你試過25和50嗎?這些是一些最常見的SMTP端口。 – jeff

+0

端口50:無法連接到SMTP主機:mail.echostar.com,端口:50; – SAR

回答

0

向管理員詢問端口號。嘗試了25,443,587次後,失敗了很多次。我的管理員給了我80作爲端口號。