文档章节

java Exchange服务接收邮件

 挨踢精英
发布于 2015/11/03 10:04
字数 223
阅读 1712
收藏 6
/**
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;
	}


© 著作权归作者所有

粉丝 2
博文 32
码字总数 8431
作品 0
株洲
私信 提问
RabbitMQ入门(4)--路由

路由 (使用Java客户端) 在先前的指南中,我们建立了一个简单的日志系统。我们可以将我们的日志信息广播到多个接收者。在这部分的指南中,我们将要往其中添加一个功能-让仅仅订阅一个消息的...

-悟空-
2015/02/24
3K
7
Spring Boot(十四)RabbitMQ延迟队列

一、前言 延迟队列的使用场景:1.未按时支付的订单,30分钟过期之后取消订单;2.给活跃度比较低的用户间隔N天之后推送消息,提高活跃度;3.过1分钟给新注册会员的用户,发送注册邮件等。 实现...

王磊的博客
2018/11/16
302
0
java读取Exchange邮件

@YOTOO 你好,想跟您请教个问题:您好,请问您知不知道如何用java以管理员权限得到Exchange所有用户下的邮件内容呢?或者以某种方式将Exchange下的所有用户邮件全都扫下来? 谢谢您!...

xiaolanglong
2015/07/29
194
0
RabbitMQ 在 Spring Boot 进阶之交换器 Direct Exchange

上篇文章中我们只看到了的生产者的消息发送与消费者的消息消费,实际上它隐藏了rabbitMQ中一个重要的环节。上篇文章中,我们在生产者中直接定义了消息送达队列的名字 我们指定了将消息发送到...

Anur
2018/09/13
30
0

没有更多内容

加载失败,请刷新页面

加载更多

Tensorflow 2.0安装

Tensorflow2.0安装环境: Ubuntu 16.04或更高(64位) Windows 7或者更高(64位,且支持python3) 安装Tensorflow 2.0 GPU版本的需要安装NVIDIA相关软件包: NVIDIA驱动 :版本必须410.x或更...

JosiahMg
17分钟前
4
0
TL138/1808/6748F-EasyEVM开发板硬件、CPU、FLASH、RAM

TL138/1808/6748F-EasyEVM是广州创龙基于SOM-TL138/SOM-TL1808/SOM-TL6748F核心板开发的一款开发板。由于SOM-TL138/SOM-TL1808/SOM-TL6748核心板管脚兼容,所以此三个核心板共用同一个底板。...

Tronlong创龙
24分钟前
4
0
百度嵌入式AI解决方案EdgeBoard之内存驱动设计介绍

1. 背景介绍 由于 FPGA 具备可编程和高性能计算的特点,基于FPGA硬件的AI计算加速,正广泛地应用到计算机视觉处理领域。其中极具代表性的部署方式之一就是使用FPGA和CPU组合构成异构计算系统...

AI君
31分钟前
6
0
开放应用模型(OAM):全球首个云原生应用标准定义与架构模型

Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长。但同时我们也关注到,Kubernetes 的核心 API 资源比如 Service、Deploymen...

Mr_zebra
34分钟前
4
0
《Linux操作系统-Exynos4412》编译和安装Busybox

开发环境:Exynos4412-iTOP-4412开发板 现在 Busybox 的配置已经完成了,接下来开始编译 Busybox,在 Ubuntu 的终端输入 “make”命令开始编译 Busybox,如下图。 下图为编译过程中的截图。 ...

书白
36分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部