Так что я хочу знать, может ли организация использовать протокол SMTP для приема электронной почты с сервера Exchange. Как я читал, Стандарт для приема: 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();
}
}
У меня есть сомнения. мы можем получать электронные письма с сервера MS Exchange через API JavaMail. если да, то как? какие именно данные сервера понадобятся для получения почты из MS Exchange –
Вам необходимо включить поддержку IMAP в Exchange. Затем вы можете использовать JavaMail для извлечения почты из Exchange, как и любой другой сервер IMAP. Для начала ознакомьтесь с [JavaMail FAQ] (http://www.oracle.com/technetwork/java/javamail/faq/index.html). –
Большое спасибо @Shannon –