2012-12-14 2 views
-1

MySQL 데이터베이스에서 비밀번호를 가져와야합니다. 이 암호는 JDBC를 사용하여 Java에서 사용자 유효한 전자 메일로 전송됩니다. 어떻게 구현할 수 있습니까? 여기비밀번호 가져 오기는 JDBC를 사용하여 이메일로 전송됩니다.

public class Checkemail 
{ 
    public String authentication(String Email) { 

     String retrievedUserName = ""; 
     String retrievedPassword = ""; 
     String status = ""; 

     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/xcart-432pro", "root", ""); 
      PreparedStatement statement = con.prepareStatement("SELECT * FROM xcart_customers WHERE email = '" + Email + "'"); 
      ResultSet result = statement.executeQuery(); 

      while(result.next()) { 
       retrievedUserName = result.getString("email"); 
       retrievedPassword = result.getString("password"); 
      } 

      if(retrievedUserName.equals(Email)) { 
       status = "Valid Email"; 
      } 

      else { 
       status = "Invalid Email!!!"; 
      } 
     } 
     catch(Exception e) { 
      e.printStackTrace(); 
     } 

     return status; 
    } 
} 

나는 이메일이 성공적으로 유효 또는 무효 확인했다 : 여기

내가 사용하고있는 코드입니다.

비밀번호를 가져 오는 코드를 어떻게 작성할 수 있습니까?이 비밀번호는 전자 메일로 보내기 기능입니까?

편집 :

지금 내가 코드를 아래와 같이 변경되었습니다

if(retrievedUserName.equals(Email)){ 
     status = "Valid Email"; 
     Properties props = new Properties(); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.socketFactory.port", "465"); 
     props.put("mail.smtp.socketFactory.class", 
     "javax.net.ssl.SSLSocketFactory"); 
      props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.port", "465"); 

     Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication("[email protected]","xxxx"); 
         } 
        }); 

        try { 

           Message message = new MimeMessage(session); 
          message.setFrom(new InternetAddress("[email protected]")); 
          message.setRecipients(Message.RecipientType.TO, 
            InternetAddress.parse(Email)); 
          message.setSubject("Testing Subject"); 
         message.setText("Dear Friends This is your fassword," + 
            retrievedPassword); 

        Transport.send(message); 

         System.out.println("Done"); 

         } catch (MessagingException e) { 
          throw new RuntimeException(e); 
           } 
           } 
            else{ 
         status = "Invalid Email!!!"; 
          } 

           } 
          catch(Exception e){ 
           e.printStackTrace(); 
            } 
          return status; 

           } 


           } 
다음

내가 공개적으로 내 코드에 내 Gmail 사용자 이름과 비밀번호를 언급했다.

 Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication("[email protected]","xxxx"); 
         } 
        }); 

내가 언급 Gmail 사용자 이름과 password.please 도움이 O를 me.how 내가 다음을 개발할 수 있습니다 승/메일을 보낼 수 있습니다.

+2

코드 블록에 대한 일관되고 논리적 들여 쓰기를 사용하십시오. –

+0

Simple : 1) 암호가 데이터베이스의 xcart_customers 테이블에 저장되어 있는지 확인하십시오. 2) 전자 메일과 동일한 방법으로 가져 오기 : retrievePassword = result.getString ("password");'3) JavaMail API를 사용할 수 있습니다. 전자 메일을 일반 텍스트로 저장하고 일반 텍스트로 전자 메일로 보내야합니다 보안이 필요합니까? 보안;) – paulsm4

+0

@ paulsm4 예 2 steps.i 위의 세 번째 step.so을 개발할 수 없으므로 자세한 내용을 설명하십시오 – user1897014

답변

0

유효한 호스트을 사용해야합니다.

이 당신을 도울 수 있습니다 ..

 String host = "smtp.gmail.com"; // Host for Gmail 
     Properties props = System.getProperties(); 
     props.setProperty("mail.user", from); 
     props.setProperty("mail.password", retrievedPassword); 
     props.put("mail.smtp.host", host); 
관련 문제