2012-03-08 5 views
1

자바 메일을 통해 "imap"을 통해 특정 이메일 서버의 이메일 계정에 액세스하려고합니다. 나는 이것을 연구했다. 그리고 Gmail에서 작동하는 다음 코드를 찾습니다.javamail을 통해 Gmail 계정에 액세스하는 방법

import java.io.*; 
import javax.mail.*; 
import javax.mail.internet.*; 

public class DeleteMessageExample { 
    public static void main (String args[]) throws Exception { 
    String host = args[0]; 
    String username = args[1]; 
    String password = args[2]; 

    // Get session 
    Session session = Session.getInstance(
     System.getProperties(), null); 

    // Get the store 
    Store store = session.getStore("imaps"); 
    store.connect(host, username, password); 

    // Get folder 
    Folder folder = store.getFolder("INBOX"); 
    folder.open(Folder.READ_WRITE); 

    BufferedReader reader = new BufferedReader (
     new InputStreamReader(System.in)); 

    // Get directory 
    Message message[] = folder.getMessages(); 
    for (int i=0, n=message.length; i<n; i++) { 
     System.out.println(i + ": " + message[i].getFrom()[0] 
     + "\t" + message[i].getSubject()); 

     System.out.println("Do you want to delete message? [YES to delete]"); 
     String line = reader.readLine(); 
     // Mark as deleted if appropriate 
     if ("YES".equals(line)) { 
     message[i].setFlag(Flags.Flag.DELETED, true); 
     } 
    } 

    // Close connection 
    folder.close(true); 
    store.close(); 
     } 
    } 

그러나, I [0] 인수 [1] 인수 [2] 암호로, usrname 것으로 imap.gmail.com가되도록 인수를 지정할 필요가있다. imap.gmail.com을 IP 주소 74.125.224.86으로 대체하면 더 이상 작동하지 않습니다.

제 질문은 야후 메일에 계정이 있다고 가정합니다. 호스트 이름을 사용해야합니까? 나는 imap.yahoo.com, mail.yahoo.com 및 IP 주소를 시도했다.

답변을 알고 있다면 정기적으로 어떤 종류의 호스트 이름을 사용해야하는지 확인해 주시겠습니까?

고마워요.

+0

yahoo/IMAP에 Thunderbird와 연결을 시도 했습니까? – Thor

답변

0

Gmail과 달리 Yahoo Mail의 IMAP 서비스는 완전히 표준적인 IMAP 서비스는 아닙니다. 로그인하기 전에 몇 가지 특별한 토큰을 보내야합니다. IMAP을 통해 야후 메일에 연결하려면 JavaMail API를 수정해야합니다. 최신 JavaMail 1.4.4-SNAPSHOT 릴리스는 Yahoo Mail도 지원합니다. 너는 그것을 얻을 수있다 here

관련 문제