2012-01-31 2 views
7

저는 Gmail과 yahoo가 작동하지만 hotmail은 작동하지 않습니다. 여기 내가 가지고있는 것, 내가 뭘 잘못하고 있니?javamail을 사용하여 hotmail에서 보내시겠습니까?

private String mailhost = "smtp.live.com"; 

    public hotmailSenderActivity(String user, String password) { 
    this.user = user; 
    this.password = password; 

    //This connects to the actual mailserver 
    Security.addProvider(new com.provider.JSSEProvider()); 
    Properties props = new Properties(); 
    props.setProperty("mail.transport.protocol", "smtp"); 
    props.setProperty("mail.host", mailhost); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "587"); 
    props.put("mail.smtp.socketFactory.port", "587"); 
    props.put("mail.smtp.socketFactory.class", 
      "javax.net.ssl.SSLSocketFactory"); 
    props.put("smtp.starttls.enable", "true"); 
    props.put("mail.smtp.socketFactory.fallback", "false"); 
    props.setProperty("mail.smtp.quitwait", "false"); 

    session = Session.getDefaultInstance(props, this); 

SSL을 사용하지 않고 포트 25 + 587을 시도했습니다. SSL을 사용하여 465 번 포트를 시도했습니다. 이메일과 비밀번호가 정확합니다 (확실하게 하드 코드되어 있습니다).

나는 어떤 오류도 발생하지 않으 ... 그래서 어떤 문제가 발생합니까?

+0

당신이 연결되어있는 지금
... props.put("mail.smtp.starttls.enable", "true"); Session session = Session.getDefaultInstance(props); Transport trans = session.getTransport("smtp"); trans.connect("smtp.live.com", 25, "user", "pass"); 

, 사용 방법은 당신이 [이]에서이 코드 (http://stackoverflow.com/를 찾았어요 질문/2020088/보내는 이메일 in-the-use-javamail-api-without-the-default-android-a/2033124 # 2033124) – Deepak

+0

그래, 내가 말했듯이, 그것은 gmail과 yahoo를 훌륭하게 사용했다. – VicVu

+0

나를 확인하게 해주세요 ... – Deepak

답변

19

1) 디버그 출력 사용

session.setDebug(true); 

2) 핫메일 SMTP 서버 (25) 또는 포트 (587)에 비 SSL 접속을 시작하고, 초기 접속 이후 STARTTLS를 사용하는 단계; 따라서 선을 제거하십시오

props.put ("mail.smtp.socketFactory.port", "587");
props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 설정

3) mimimum 금액은 다음과 같습니다

props.setProperty("mail.transport.protocol", "smtp"); 
    props.setProperty("mail.host", "smtp.live.com"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.auth", "true"); 

이 그렇지 않으면 props.put ("mail.smtp.port", "587")를 추가, 포트 25 가정;

4) 아직도 더 좋은 모습이 : Transport

+2

아하! 당신은 내 인생에서 스트레스의 35 %를 제거했습니다. – VicVu

2

http://www.oracle.com/technetwork/java/javamail/faq/index.html#hotmail

이 모든 소켓 팩토리의 물건을 제거하십시오, 당신은 그것을 필요하지 않습니다.

+0

그 밖의 다른 것들이 없앨 필요가 있습니까? 삭제했을 때 아무 것도 변경하지 않았습니다. – VicVu

+0

FAQ를 읽으셨습니까? 일이 잘 안나면 할 일을 알려줄 것입니다. –

+0

불행히도 여전히 문제가 해결되지 않습니다. C – VicVu

관련 문제