使用Java从Microsoft mail Exchange server读取带有附件的邮件
我一直在尝试使用java代码从我的Microsoft exchange服务器检索电子邮件 这是我的密码使用Java从Microsoft mail Exchange server读取带有附件的邮件,java,server,exchange-server,Java,Server,Exchange Server,我一直在尝试使用java代码从我的Microsoft exchange服务器检索电子邮件 这是我的密码 Properties properties = new Properties(); properties.put("mail.pop3.host", host); properties.put("mail.pop3.port", port); // SSL setting properties.setProperty("mail.pop3.socketF
Properties properties = new Properties();
properties.put("mail.pop3.host", host);
properties.put("mail.pop3.port", port);
// SSL setting
properties.setProperty("mail.pop3.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.pop3.socketFactory.fallback", "false");
properties.setProperty("mail.pop3.socketFactory.port",String.valueOf(port));
properties.setProperty("mail.auth.debug","true");
String pid = "";
Boolean chkFlag = false;
Session session = Session.getInstance(properties);
try {
properties.setProperty("mail.store.protocol", "pop3");
session = Session.getDefaultInstance(properties, null);
Store store = session.getStore("pop3");
System.out.println("host,userName, password"+host +" " +userName + " "+password );
store.connect(host,userName, password);
Folder folderInbox = store.getFolder("Inbox");
folderInbox.open(Folder.READ_WRITE);
System.out.println("bffhb");
String MailsaveDirectory = saveDirectory;
Message[] arrayMessages = folderInbox.search(new FlagTerm(new Flags(
Flags.Flag.SEEN), false));
System.out.println("No. of Unread Messages : " + arrayMessages.length);
for (int i = 0; i < arrayMessages.length; i++) {
System.out.println("msgcnt");
Message message = arrayMessages[i];
Address[] fromAddress = message.getFrom();
Address[] toAddress = message.getRecipients(Message.RecipientType.TO);
String from = fromAddress[0].toString();
String to = toAddress[0].toString();
String subject = message.getSubject();
String queueId = "";
String sentDate = message.getSentDate().toString();
String contentType = message.getContentType();
String messageContent = "";
String attachFiles = "";
MailMht mh = new MailMht();
saveDirectory = MailsaveDirectory + File.separator + "Message-" + (i + 1);
System.out.println("saveDirectory "+saveDirectory);
pid = subject.substring(subject.lastIndexOf(":") + 1);
mh.parseMessages(message, folderInbox, saveDirectory);
if (contentType.contains("multipart")) {
}
if (true) {
File dir = new File(saveDirectory);
System.out.println("dir to be created:" + saveDirectory);
if (dir.exists() == false) {
System.out.println("Creating Dir...");
dir.mkdirs();
System.out.println("Created Dir...");
}
if (contentType.contains("multipart")) {
}
} else {
chkFlag = false;
}
try {
Folder folderI = null;
if (chkFlag) {
folderInbox.setFlags(arrayMessages, new Flags(Flags.Flag.DELETED), true);
folderInbox.close(true);
store.close();
chkFlag = true;
}
} catch (Exception e) {
chkFlag = false;
e.printStackTrace();
folderInbox.close(false);
store.close();
}
}
} catch (MessagingException ex) {
System.out.println("Could not connect to the message store");
ex.printStackTrace();
chkFlag = false;
}
return chkFlag;
}
Properties属性=新属性();
properties.put(“mail.pop3.host”,host);
properties.put(“mail.pop3.port”,port);
//SSL设置
properties.setProperty(“mail.pop3.socketFactory.class”,
“javax.net.ssl.SSLSocketFactory”);
properties.setProperty(“mail.pop3.socketFactory.fallback”、“false”);
properties.setProperty(“mail.pop3.socketFactory.port”,String.valueOf(port));
setProperty(“mail.auth.debug”、“true”);
字符串pid=“”;
布尔值chkFlag=false;
Session Session=Session.getInstance(属性);
试一试{
properties.setProperty(“mail.store.protocol”、“pop3”);
session=session.getDefaultInstance(属性,null);
Store Store=session.getStore(“pop3”);
System.out.println(“主机、用户名、密码”+主机+“”+用户名+“”+密码);
store.connect(主机、用户名、密码);
Folder folderInbox=store.getFolder(“收件箱”);
folderInbox.open(Folder.READ\u WRITE);
系统输出打印LN(“bffhb”);
字符串mailsaveditory=saveDirectory;
Message[]arrayMessages=folderInbox.search(新标志项(
Flags.Flag.SEEN),false);
System.out.println(“未读邮件数:“+arrayMessages.length”);
for(int i=0;i
我已经做了几乎所有的事情,我得到了一个身份验证异常
javax.mail.AuthenticationFailedException:[AUTH]身份验证
失败了
但我可以通过live.com
网站登录
有人建议您退出吗?有:您在获取邮件会话时错过了验证器:
Authenticator authenticator=new Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(userName, password);
}
};
properties.setProperty("mail.pop3.auth", "true");
Session session=Session.getInstance(props, authenticator);
顺便说一句,您有两个会话初始化:删除其中一个。是:您在获取邮件会话时错过了身份验证程序:
Authenticator authenticator=new Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(userName, password);
}
};
properties.setProperty("mail.pop3.auth", "true");
Session session=Session.getInstance(props, authenticator);
顺便说一句,您有两个会话初始化:删除其中一个