0
그래서 조직에서 Exchange 서버의 전자 메일 수신에 SMTP 프로토콜을 사용할 수 있는지 여부를 알고 싶습니다. 내가 읽었을 때 수신 표준은 POP3
또는 IMAP
이고 SMTP
프로토콜은 송신 표준입니다. 내 질문은 수신 프로토콜로 SMTP
을 사용할 수 있는지 여부입니다. 그렇다면 JavaMail API를 사용하여 메시지를 읽는 방법을 알고 싶습니다.SMTP를 Exchange 서버의 수신 프로토콜로 사용할 수 있습니까?
다음 코드를 시도하고 있습니다. 하지만 NoSuchProviderException
private void fetch(String incomingHost, String username, String password) {
try {
Properties properties = new Properties();
properties.put("mail.store.protocol", "smtp");
properties.put("mail.smtp.host", incomingHost);
properties.put("mail.smtp.port", 25);
properties.put("mail.smtp.starttls.enable", false);
emailSession = Session.getInstance(properties);
Store store = emailSession.getStore();
store.connect(incomingHost, 25, username, password);
// create the folder object and open it
Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_ONLY);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Message[] messages = emailFolder.getMessages();
System.out.println("messages.length---" + messages.length);
for (int i = 0; i < messages.length; i++) {
Message message = messages[i];
System.out.println("---------------------------------" + message.getDescription());
//writePart(message);
String line = reader.readLine();
if ("YES".equals(line)) {
message.writeTo(System.out);
} else if ("QUIT".equals(line)) {
break;
}
}
// close the store and folder objects
emailFolder.close(false);
store.close();
} catch (javax.mail.NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
나는 의심의 여지가있다. JavaMail API를 통해 MS Exchange 서버에서 이메일을 가져올 수 있습니까? 그렇다면 어떻게? MS Exchange에서 메일을 가져 오는 데 정확히 서버 세부 정보가 필요합니다. –
Exchange에서 IMAP 지원을 활성화해야합니다. 그런 다음 JavaMail을 사용하여 다른 IMAP 서버와 마찬가지로 Exchange에서 메일을 가져올 수 있습니다. 시작하려면 [JavaMail FAQ] (http://www.oracle.com/technetwork/java/javamail/faq/index.html)를 참조하십시오. –
고마워요 @Shannon –