2015-01-29 4 views
2

내 전자 메일 주소에서 전자 메일 주소로 전자 메일을 보내도록 Java 프로그램을 작성하려고하지만 코드를 실행할 때이 javax.mail.SendFailedException이 발생합니다. 내 코드에는 Main.java와 EmailManagement.java의 두 클래스가 있습니다. 내가 잡하고 오류는 다음과 같습니다javax.mail.SendFailedException 내 Java 코드를 통해 전자 메일을 보내려고 할 때 위에서 언급 한 expcetion을받는 이유는 무엇입니까?

javax.mail.SendFailedException: Sending failed; 
    nested exception is: 
    javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; 
    nested exception is: 
    java.net.ConnectException: Connection refused: connect 
    at javax.mail.Transport.send0(Transport.java:219) 
    at javax.mail.Transport.send(Transport.java:81) 
    at EmailManagement.sendEmailToOnePlayer(EmailManagement.java:43) 
    at Main.main(Main.java:14) 

코드는 다음과 같습니다.

import javax.swing.JOptionPane; 포트 :

public class Main { 

    public static void main(String[] args) { 
     EmailManagement objEmail = new EmailManagement(); 

     String senderEmailId = JOptionPane.showInputDialog("ENter sender email id"); 
     String recieverEmailId = JOptionPane.showInputDialog("Enter reciever Email id"); 
     String subjectOfEmail = JOptionPane.showInputDialog("Enter email subject"); 
     String textOfEmail = JOptionPane.showInputDialog("Enter text Of mail"); 

     objEmail.sendEmailToOnePlayer(senderEmailId, recieverEmailId, subjectOfEmail, textOfEmail); 
     //System.out.println(senderEmailId); 

    } 

} 



import java.util.*; 

import javax.mail.*; 
import javax.mail.internet.*; 
import javax.activation.*; 


public class EmailManagement { 

    public void sendEmailToOnePlayer(String senderEmailId, String recieverEmailId , String subjectOfEmail , String textOfEmail){ 

     //using localhost for sending email 
     String host ="localhost"; 

     //to get the system properties 
     Properties properties = System.getProperties(); 

     //now to setup the mail server 
     properties.setProperty("mail.smtp.host", host); 

     //now to get our default session object 
     Session session =Session.getDefaultInstance(properties); 

     //now to create default Mime message 
     MimeMessage message = new MimeMessage(session); 


     try { 
      //now to set the sender email address 
      message.setFrom(new InternetAddress(senderEmailId)); 

      //now set reciever email address 
      message.addRecipient(Message.RecipientType.TO, new InternetAddress(recieverEmailId)); 

      //set the subject of email to be sent 
      message.setSubject(subjectOfEmail); 

      //actual message text of email 
      message.setText(textOfEmail); 


      //send message to required recipient 
      Transport.send(message); 


      System.out.println("email sent successfully :) "); 



     } catch (AddressException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (MessagingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 



    } 
} 
+0

로컬 컴퓨터에서 SMTP 서버를 실행하고 있습니까? – slipperyseal

+0

우리에게 [MCVE] (http://stackoverflow.com/help/mcve)를 제공하고 읽을 수 있도록 질문을 교정하십시오. –

+0

만약 내가 처음이라도 신경 쓸 필요가 없다면 SMTP 서버가 로컬 컴퓨터에서 실행되고 있는지 확인할 수 있습니까? –

답변

0

당신은 SMTP 서버가 실제로 해당 호스트에서 실행중인 모든 종류의 TCP 서버가없는 localhost:25. 실행하지 않습니다.

+0

무엇을해야할 지 친절하게 말해주세요. –

+0

* 존재하지 않는 SMTP 서버에 연결하십시오. 그리고 IP : port를 알려달라고하지 마십시오. 그것은 당신의 시스템입니다. 아무도 당신에게 말할 수 없습니다. – EJP