2010-06-17 18 views
6

भेजकर जावा का उपयोग कर smtp सर्वर प्रमाण-पत्रों को मान्य करें smtp सर्वर प्रमाण-पत्र सत्यापित करने के लिए मैं transport.connect() का उपयोग करूंगा?वास्तव में मेल

Session session = Session.getInstance(properties,authenticator); 

Transport tr=session.getTransport("smtp"); 

tr.connect(); 

क्या यह smtp सर्वर प्रमाण-पत्र जांचने के लिए सही तरीका है?

उत्तर

16

यह सवाल: 'Verify mail server connection programmatically in ColdFusion' स्वीकार किए जाते हैं जवाब के हिस्से के रूप में एक जावा समाधान है:

int port = 587; 
String host = "smtp.gmail.com"; 
String user = "[email protected]"; 
String pwd = "email password"; 

try { 
    Properties props = new Properties(); 
    // required for gmail 
    props.put("mail.smtp.starttls.enable","true"); 
    props.put("mail.smtp.auth", "true"); 
    // or use getDefaultInstance instance if desired... 
    Session session = Session.getInstance(props, null); 
    Transport transport = session.getTransport("smtp"); 
    transport.connect(host, port, user, pwd); 
    transport.close(); 
    System.out.println("success"); 
} 
catch(AuthenticationFailedException e) { 
     System.out.println("AuthenticationFailedException - for authentication failures"); 
     e.printStackTrace(); 
} 
catch(MessagingException e) { 
     System.out.println("for other failures"); 
     e.printStackTrace(); 
} 
+0

मैं इस की कोशिश की है और यह जीमेल के अलावा अन्य पतों के लिए काम नहीं करता है - हमेशा सफलता प्रिंट करता है। कोई विचार क्यों? मैं smtp.1and1.com का उपयोग कर रहा हूं और गलत प्रमाण-पत्र अभी भी सफलता प्रिंट कर रहा हूं – ntgCleaner

+0

मैंने आपके समाधान की कोशिश की लेकिन सही डेटा के साथ भी (मैं अभी उन ईमेल डेटा सेटिंग्स के साथ ईमेल भेज रहा हूं) मुझे मिलता है: 535 गलत प्रमाणीकरण डेटा कोई विचार क्यों ? –

5
public boolean confirmSMTP(String host, String port, String username, String password, String auth, String enctype) { 
    boolean result = false; 
    try { 
     Properties props = new Properties(); 
     if (auth.equals(true)) { 
      props.setProperty("mail.smtp.auth", "true"); 
     } else { 
      props.setProperty("mail.smtp.auth", "false"); 
     } 
     if (enctype.endsWith("TLS")) { 
      props.setProperty("mail.smtp.starttls.enable", "true"); 
     } else if (enctype.endsWith("SSL")) { 
      props.setProperty("mail.smtp.startssl.enable", "true"); 
     } 
     Session session = Session.getInstance(props, null); 
     Transport transport = session.getTransport("smtp"); 
     int portint = Integer.parseInt(port); 
     transport.connect(host, portint, username, password); 
     transport.close(); 
     result = true; 

    } catch(AuthenticationFailedException e) { 
     Logging.addMsg(e.toString(), "SMTP: Authentication Failed", false, true); 

    } catch(MessagingException e) { 
     Logging.addMsg(e.toString(), "SMTP: Messaging Exception Occurred", false, true); 
    } catch (Exception e) { 
     Logging.addMsg(e.toString(), "SMTP: Unknown Exception", false, true); 
    } 

    return result; 
} 
+1

बेक, मैंने कोशिश की, लेकिन उपर्युक्त उत्तर की तरह, मुझे सफलता संदेश प्राप्त हो रहा है जब मुझे नहीं होना चाहिए। क्या मैं कुछ कर रहा हूँ में कुछ गलत हो सकता है? – ntgCleaner