SMTP 能否用作 Exchange 服务器中的传入协议
Can SMTP used as Incoming Protocol in Exchange server
所以我想知道一个组织是否可以使用 SMTP 协议从 Exchange 服务器接收电子邮件。正如我所读,接收标准是 POP3
或 IMAP
,而 SMTP
协议是发送标准。
我的问题是是否可以使用 SMTP
作为 Incoming Protocol 。
如果是,那么我想知道如何使用 JavaMail API.
阅读它的消息
我正在尝试以下代码。但得到 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();
}
}
简单的答案是 "no",但 Whosebug 要求我添加所有这些词以使答案足够长。
所以我想知道一个组织是否可以使用 SMTP 协议从 Exchange 服务器接收电子邮件。正如我所读,接收标准是 POP3
或 IMAP
,而 SMTP
协议是发送标准。
我的问题是是否可以使用 SMTP
作为 Incoming Protocol 。
如果是,那么我想知道如何使用 JavaMail API.
我正在尝试以下代码。但得到 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();
}
}
简单的答案是 "no",但 Whosebug 要求我添加所有这些词以使答案足够长。