java Exchange服务接收邮件

/**
serverName 接收邮件地址
user 用户信息
pwd 密码
path 邮件临时储存路径
max 每次接收邮件的最大数量
**/

public int receive(String serverName, String user, String pwd, String path, int max) throws Exception {
        //新建ExchangeVersion.Exchange2007_SP1版本的Exchange服务
	ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
	String[] userInfo = user.split("/");
	//用户认证信息
    	ExchangeCredentials credentials = new WebCredentials(userInfo[1], pwd,userInfo[0]);
    	service.setCredentials(credentials);
    	//设置Exchange连接的服务器地址
    	service.setUrl(new URI(serverName));
    	//绑定邮箱
    	Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);
    	//获取邮箱文件数量
    	int count = inbox.getTotalCount();
    	if(max > 0) count = count > max ? max : count; 
        //循环获取邮箱邮件
    	ItemView view = new ItemView(count);
        FindItemsResults<Item> findResults = service.findItems(inbox.getId(), view);
        for (Item item : findResults.getItems()) {
            EmailMessage message = EmailMessage.bind(service, item.getId());
            List<Attachment> attachs = message.getAttachments().getItems();
            try{
	            if(message.getHasAttachments()){
		            for(Attachment f : attachs){
		            	if(f instanceof FileAttachment){
		            	        //接收邮件到临时目录
		            		File tempZip = new File(path,f.getName());
		            		((FileAttachment)f).load(tempZip.getPath());
		            	}
		            }
		            //删除邮件
		            message.delete(DeleteMode.HardDelete);
	            }
            }catch(Exception err){
            	log.equals(err);
            }
        }
		return count;
	}
时间: 2024-08-07 19:35:55

java Exchange服务接收邮件的相关文章

Exchange Server 2010邮件撤回条件说明

在很多的企业运维中,员工有时会出现发出的邮件想要撤回的需求,那么今天我们就来看看Exchange Server邮件平台下,员工需要成功撤回需要满足的四个条件,如下: 1. 必须为Exchange 模式接收邮件,不能为pop模式.即便是你的服务器端是Exchange Server服务器:    2. 发送邮件必须为组织内部:    3.此邮件在对方的收件箱中标记为"未读"状态:    4. 邮件在Outlook中,对方使用OWA登录看邮件,即便是未读也不能撤回. 另外,大家感兴趣,也可以

Android Java使用JavaMail API发送和接收邮件的代码示例

JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的jar包(请下载javamail的源文件,官方下载页:http://www.oracle.com/technetwork/java/javamail/index-138643.html):mailapi.jar.定义了收发邮件所使用到的接口API:smtp.jar.包含了发送邮件使用到的类:pop3.

易宝典文章——玩转Office 365中的Exchange Online服务 之十三 怎样管理Exchange Online的邮件用户和联系人

在前面文章的描述过程中,提到了这样两个概念--联系人和组.接下来,就专门来讲关于Exchange Online的收件人对象的问题.对于Exchange Online来讲,所有能够接收邮件的对象都叫做收件人对象,它们具有一个共同的特点就是都具有邮件地址.虽然这些对象在Exchange Online中都具有邮件地址但不一定都有用于存储邮件的邮箱. 邮件用户和联系人就是属于在Exchange Online中只有邮件地址而没有邮箱存储的收件人对象.在ExchangeOnline中创建这类对象的目的,就是

Exchange用户更改密码后,手机用户使用旧密码仍然可以接收邮件

最近有两个同事说他们的用户密码更改密码后,手机竟然不提示新密码仍然能够接收邮件,刚开始觉得匪夷所思,并没有在意,后面搜索下互联网,发现网上有同样的人遇到过该问题,查了下KB,还真找到一个,具体说是IIS中的一个机制,会缓存用户通过基本身份验证的凭据,时间为15分钟(用outlook MAPI或者windows 集成身份验证的不受该影响). http://support.microsoft.com/kb/267568

Exchange 2013接收连接器介绍

Exchange 2013默认的接受连接器有5种如下: 那么,如何区分和理解这5种接收连接器呢? 首先明确接收连接器的定义: 接收连接器用于控制发送到 Exchange 组织的入站邮件流. 接收连接器的作用域限于单台服务器,及每个接收连接器都属于单台服务器,其设置仅对此台服务器生效. Exchange 2013默认的接收连接器虽然有5个,但按角色分只有两类.我们可以先从接收连接器的两类角色开始了解. 接收连接器两类角色分别为:FrontendTransport即前端传输,和HubTranspor

使用Exchange反垃圾邮件组件解决内部仿冒邮件

最近一个朋友遇到一个很有意思的问题,在生产环境中我们装好Exchange之后,肯定需要配置外部邮件的收发.按照我们对邮件系统的理解,我们必须在default 接收连接器上的权限设置,允许匿名连接,才能实现外部邮件的接收.如果我们不配置匿名权限,那么外部邮箱在往我们的邮件系统域发送邮件时就会遇到类似以下的错误: 但在没有反垃圾邮件措施的情况下,我们可以使用telnet工具,实现匿名的邮件发送,并可以任意的冒名发送: 在上图中,我们用telnet工具非常轻松的就冒名邮件系统域的Postmaster邮

怎么设置使用iPhone邮件应用发送/接收邮件-QQ邮箱

以qq邮件为例,怎么在iPhone设备上使用邮件发送以及接收邮件.1.首先需要登录QQ邮箱,QQ邮箱登录地址:https://mail.qq.com/cgi-bin/loginpage 2.登录成功后点击名称下面的“设置“选项 3.在邮箱设置中点击”账户“ 4.下拉到中间部分 有一栏 ”POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务“,点击开启POP3/SMTP服务 和 IMAP/SMTP服务,有些qq可以使用安全扫一扫来开启,但有些qq只能使用手机发送短信方式

最热门的13个Java微服务框架(内附java学习教程分享)

曾经的服务器领域有许多不同的芯片架构和操作系统,经过长期发展,Java的"一次编译,到处运行"使得它在服务器领域找到一席之地,成为程序员们的最爱 本文,我们将和大家分享13个可靠的Java微服务架构最后,如果大家如果在自学遇到困难,想找一个java的学习环境,可以加入我们的java学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题. 1.Spring Boot Java构建Spring应用程序已经有很长一段时间了,Spring Boot是Spring的一个特定版本,它通过

JMS(Java消息服务)入门教程

阅读目录 什么是Java消息服务 为什么需要JMS JMS的优势 JMS消息传送模型 接收消息 JMS编程接口 JMS消息结构 JMS使用示例 译文链接(做了部分修改~~) 什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中,当两个应用程序使用JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发服务连接起来,可以达到解耦的效果,我