2016-07-28 5 views
1

비슷한 문제가있는 사용자와 함께 다른 많은 게시물을 검색했지만 작동하지 않는 것 같습니다.JavaMail을 사용하여 업무용 전자 메일 서버에 전자 메일 보내기

Hello World 
DEBUG: setDebug: JavaMail version 1.4.7 

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] 

DEBUG SMTP: useEhlo true, useAuth true 

DEBUG SMTP: useEhlo true, useAuth true 

DEBUG SMTP: trying to connect to host "[my work email server]", port 587, isSSL false 

javax.mail.MessagingException: Could not connect to SMTP host: [my work email server], port: 587; 

상자의 예외는 다음과 같습니다 :

java.net.ConnectException: Connection timed out: connect 
내가 자바 1.8를 사용하고

package testingstuff; 
import java.io.*; 
import java.util.*; 
import javax.mail.*; 
import javax.mail.Message.RecipientType; 
import javax.mail.internet.*; 
import javax.activation.*; 
public class test { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    System.out.println("Hello World"); 


    final String user = "my work ID"; 
    final String pw = "my work Password"; 

    Properties props = new Properties(); 



    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", "server I got from our outlook app"); 
    props.put("mail.smtp.port", "587"); 

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

    session.setDebug(true); 

    try { 
     Message msg = new MimeMessage(session); 
     String from = "[email protected]"; 
     String to = "[email protected]"; 
     msg.setFrom(new InternetAddress(from)); 
     msg.setRecipient(RecipientType.TO, new InternetAddress(to)); 
     msg.setSubject("TEST"); 
     msg.setText("TESTING"); 

     //Transport trans = session.getTransport("smtp"); 
     //trans.connect("smtp-mail.outlook.com", 25, user, pw); 
     Transport.send(msg); 
    } 
    catch (Exception e) { 
     System.out.println(e); 
    } 

    System.out.println("done"); 
} 

} 

는 JavaMail에는 버전 1.4.7 여기

세션 디버그의 출력이되는 것을보고

완료

내가 사용하고있는 전자 메일 서버는 outlook app에서 왔습니다. 계정 설정으로 이동하여 계정을 선택하고 변경 사항을 선택했습니다. 그러면 전자 메일에 대한 config가있는 창이 열리고 서버 주소가 포함됩니다.

+0

나는 그 일을 전에 시도 했는데도 효과가 없었습니다. 나는 그것이 직장 네트워크에서 전송되어 막히고 있었다. 개인 Gmail 또는 뭔가를 이메일로 보내고 작동하는지 확인하는 것이 좋습니다 –

+0

아마도 포트 번호가 문제를 일으킬 수 있습니다. 예를 들어 "80"을 시도하십시오. – pilkington

답변

0

이 문제는 내가 잘못된 호스트를하였습니다 었죠

import java.util.*; 

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

public class SendEmail 
{ 
    public static void main(String [] args) 
    {  
      String username = ""; 
      String password = ""; 
      String to = ""; 
      String from = ""; 
      String host = ""; 

      Properties properties = System.getProperties(); 


      properties.setProperty("mail.smtp.host", host); 
      properties.setProperty("mail.smtp.user", username); 
      properties.setProperty("mail.smtp.password", password); 
      properties.setProperty("mail.smtps.auth", "true"); 
      Session session = Session.getDefaultInstance(properties); 

      try{ 
      MimeMessage message = new MimeMessage(session); 

      message.setFrom(new InternetAddress(from)); 

      message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); 

      message.setSubject("This is the Subject Line!"); 

      BodyPart messageBodyPart = new MimeBodyPart(); 

      messageBodyPart.setText("This is message body"); 

      Multipart multipart = new MimeMultipart(); 

      multipart.addBodyPart(messageBodyPart); 




      message.setContent(multipart); 



      message.saveChanges(); 
      Transport transport = session.getTransport("smtp"); 
      transport.connect(host, username, password); 
      transport.sendMessage(message, message.getAllRecipients()); 
      transport.close(); 
      System.out.println("Sent message successfully...."); 
      }catch (MessagingException mex) { 
      mex.printStackTrace(); 
      } 
} 



} 
+0

안녕하세요, 아직 작동하지 않는 것 같습니다. 아마도 내가 잘못된 포트를 가지고있을 수도 있고, 들어가기 위해 여분의 보안 대책이 필요할 수도 있다고 생각합니다. 직장에서 IT 지원팀에 이메일을 보내 자격 증명 및 설정을 요청하는 이메일을 보냈습니다. 이 일. 도움을 주셔서 감사합니다! – KevinCamacho

0

아래의 코드 단지에서,에, 사용자 이름, 암호를 넣어, 호스트를보십시오.

관련 문제