【发布时间】:2020-02-19 07:56:01
【问题描述】:
我正在尝试从 Exchange SMTP 服务器(端口 25)获取一封电子邮件。 我看到的所有示例都是使用 SMTP 发送电子邮件,而我想获取(阅读)电子邮件。 我使用 JAVAMail 编写了一个代码,该代码使用 impas 接收电子邮件,效果很好,但在最后一刻,需求更改为使用 SMTP 接收邮件。
IMAP 传入邮件的 Java 代码
public void getAttachment() throws MessagingException, IOException {
properties.setProperty("exchange server host",host);
properties.put("smtp.gmail.auth", "true");
Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
}
);
Store store = session.getStore("imaps");
try {
logger.info(String.format("Going to get connection to exchange server %s for user %s " ,host, user));
store.connect(host, user, password);
}
catch (MessagingException ex){
logger.error(String.format("Unable to connect exchange server {}", host) + ex.getMessage());
logger.error(ex.getStackTrace());
}
Folder inboxFolder = store.getFolder("inbox");
inboxFolder.open(Folder.READ_WRITE);
// search for all "unseen" messages
Flags seen = new Flags(Flags.Flag.SEEN);
FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
Message[] message = inboxFolder.search(unseenFlagTerm);
有人可以建议使用 SMTP 协议而不是 IMAP 获取邮件吗? 可以吗?
谢谢。
【问题讨论】:
标签: java smtp jakarta-mail exchange-server