javamail时间过滤
A. 请教JAVA 邮件系统的设计,以及一些业务逻辑.
个人想法,请参考:
1.保存到文件夹吧,我觉得不用移除附件内。 遇到有过滤附件的需求时再考虑吧容。
2.存邮件表的应该是包含邮件列表页面显示的内容吧。内容之外的是不是就可以不在这张表里存了。比如抄送地址这种,就一并存到文件里吧,算是邮件头。查看的时候解析。
3.同意,exchange web就是这样的。
4.统一用utf8编码吧
5.这个不太清楚,不好意思。
6.中间有异常的话是不是要算成草稿。就是1(入库+写文件)2 发送 3 根据发送修改数据记录
7.不太清楚具体情况。debug一下呢? 内存中没有大数据的处理吧?
B. javamail发送邮件测试时获取发送邮件的时间为null,求教!!!
我测试了一下,如果这里设置为空值或者小于当前时间,那么邮件系统会给个当前时间的默认值。如果设置大于当前时间,则邮件显示的发送时间就是设置的时间。
你这里并没有对sendDate赋值,取出来的肯定是空。
C. javamail 收邮件时候内容重复 怎么过滤重复内容.100分给了
publicstaticStringreverse1(Stringstr)
{
returnnewStringBuffer(str).reverse().toString();
}
2.最常用的方法:
publicstaticStringreverse3(Strings)
{
char[]array=s.toCharArray();
Stringreverse="";//注意这是空串,不是null
for(inti=array.length-1;i>=0;i--)
reverse+=array[i];
returnreverse;
}
3.常用方法的变形:
publicstaticStringreverse2(Strings)
{
intlength=s.length();
Stringreverse="";//注意这是空串,不是null
for(inti=0;i<length;i++)
reverse=s.charAt(i)+reverse;//在字符串前面连接,而非常见的后面
returnreverse;
}
4.C语言中常用的方法:
publicstaticStringreverse5(Stringorig)
{
char[]s=orig.toCharArray();
intn=s.length-1;
inthalfLength=n/2;
for(inti=0;i<=halfLength;i++){
chartemp=s[i];
s[i]=s[n-i];
s[n-i]=temp;
}
returnnewString(s);//知道char数组和String相互转化
}
D. java条件查询(起始时间,结束时间),如何做过滤呀,文件的命名规则是时间-id号.txt
遍历你抄整个文件夹,先获取文袭件夹下文件的全名,然后截取出前面的 时间字段 跟 你输入的条件做比较
你点查询不是把你的 开始日期 和 结束日期都传到后台了吗
date 类下是有方法判断时间前后的
你全遍历一遍,每个文件名比较一次不就行了吗
E. java员工信息日期的过滤怎么做,求代码
是在什么样的环境、APPLICATION、WEB、还是SQL、
F. 求助牛人,javamail实现收件复杂筛选过滤
添加此Item int mailSize = 1024;
SearchTerm intComparisonTerm = new SizeTerm(
IntegerComparisonTerm.GE, mailSize);
G. javamail发送500万封邮件需要多久,如何处理,数据库里面有500万条数据,每条数据的收件人和发送内容不同
建议你使用发送邮件的工具,网上有很多,是收费的。
自己写发送邮件的程序,多半会出现被视为垃圾邮件、服务器发送失败等一些问题。
H. 使用java 排除 两个日期段中的 休息日和节假日 。在线等待中十万火急,求大牛帮忙,多谢了。。。。
时间处理,更方便和更易读的代码角度讲,肯定要用Java8的新date api啦,由于涉及到一系列日期,所以结合Java8的Stream也是理所当然
总体思路:
由于节假日每年在变,所以需要罗列出所有的节假日集合A
生成2016-01-01 至 2016-05-01所有的日期,生成日期集合B
从B中过滤掉A中的节假日
从B中过滤掉周六周日
最后把B中集合打印
结合思路,所见即所得的代码如下:
//所有节假日的日期集合,这里你可以自己添加,只写了两个仅供参考(完成思路1)
List<LocalDate>holidays=Arrays.asList(LocalDate.parse("2016-01-01"),LocalDate.parse("2016-05-01"));
//按照起始2016-01-01,每次递增一天的方式生成一个Stream
Stream.iterate(LocalDate.parse("2016-01-01"),localDate->localDate.plusDays(1))
//按照要求的时间间隔2016-01-01至2016-05-01中的实际间隔天数截断Stream(完成思路2)
.limit(ChronoUnit.DAYS.between(LocalDate.parse("2016-01-01"),LocalDate.parse("2016-05-01")))
//过滤其中的节假日(完成思路3)
.filter(localDate->!holidays.contains(localDate))
//过滤其中的周六
.filter(localDate->!DayOfWeek.SATURDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))
//过滤其中的周日(完成思路4)
.filter(localDate->!DayOfWeek.SUNDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))
//打印最后结果(完成思路5)
.forEach(System.out::println);
打印的结果:
综上:结合新时间API的易用性+Stream处理集合的快捷性,写出代码还是很简洁的
I. 使用javamail查询收件箱,如何获得邮件的发送时间呢请详细说明,谢谢
首先必须获取链接:
Properties props = new Properties();
Session session = Session.getInstance(props);
Store store = session.getStore(receiptorPro);
store.connect(“接受邮件服务器”, “端口”, “用户名”, “密码”);
打开Folder:
Folder inbox = store.getFolder("INBOX");
Folder有pop3和imap两种:
IMAPFolder folder = (IMAPFolder) inbox;
folder.open(Folder.READ_WRITE);//Folder.READ_WRITE为打开状态
获取邮件:
Message[] messages = folder.getMessages();
for (int i = 0; i < messages.length; i++) {
Date sendDate = messages[i].getSentDate();
//ok 就能取出发送时间
}
J. 有木有JAVA关于邮件过滤方面的书
邮件过滤系统的设计与实现 王博 【摘要】: 随着电子邮件的广泛应用,各种垃圾、病毒邮件入侵邮件系统,严重影响邮件系统的正常使用。目前更多过滤系统是通过采用设置IP策略、邮件标题查找、MIME长度限制或具有一定智能查找的算法等方案来在单机上实现。本方案主要采用设计垃圾、病毒邮件收集中心,搜集来自不同客户端的配制策略,收集中心对数据进行综合评定,根据处理结果决定是否通知邮件服务器,如果通知邮件服务器,服务器更新数据库,此方案使邮件服务器及时的发现垃圾、病毒邮件,节省了网络带宽并提高了过滤准确效率,也节省了宝贵的系统资源。 在邮件过滤系统设计中,利用了JAVAMAIL软件包的开发技术,涉及基于邮件附件大小、垃圾词语、垃圾邮件产生源地址及病毒过滤等方面,缩短了开发周期。同时,山于JAVAMAIL是JAVA语言的一个子集,自然,在界面开发中用了JAVA开发工具。并且,由于垃圾、病毒邮件是在动态变化的,如何高效准确快速的进行判断是软件设计中要考虑的一个非常重要的因素。对此,本系统设计了采用基于CORBA技术的收集中心,它的主要工作是收集来自不同客户端的邮件数据,对从不同客户端采集来的数据进行分类整理、综合测评,对不同等级的可疑词语、短语、句子或者附件进行评价,将得到的结果在本地数据库保存,并及时通知邮件服务器对数据进行更新。 邮件过滤系统的设计离不开对传统邮件系统的深入研究,本文也详细剖析了邮件系统从高层到底层的实现过程,包括其中涉及到的不同层次的协议、服务与接口等。同时,在实现过程中也用到了一些邮件协议,比如:SMTP协议、POP协议和IMAP协议等。并且,在过滤过程中需要对邮件格式进行处理,这涉及到MIME,如何按照一定的MIME格式对邮件内容进行提取,也是邮件过滤的一个很重要的方面。同时,在对邮件附件过滤过程中,需要进行很多相关的提取处理,在用JAVAMAIL开发过程中,这也是很重要的一个方面。 在对附件处理过程中,需要进行扫描、查毒处理,查毒可以采用多种方式。本设计主要采用按特征值进行查毒的方式,该方法快速,实现简单,但是在对付一些变种病毒邮件上,由于该方法自适应能力差,所以有一定的限制。同时,病毒特征码数据库也要能进行动态的更新,以求能实时的进行邮件扫描。 【关键词】: 过滤 协议 垃圾邮件 病毒 【学位授予单位】: 山东理工大学 【学位级别】: 硕士 【学位授予年份】: 2006 【分类号】: TP393.098 【DOI】: CNKI:CDMD:2.2006.100637 【目录】: 第一章 绪论8-17 1.1 垃圾邮件的来源与危害8 1.2 垃圾邮件的特点与过滤垃圾邮件的困难性8 1.3 病毒邮件的特点与危害8-9 1.4 邮件过滤的必要性9-10 1.5 常见的邮件过滤器10-15 1.5.1 MTA过滤器11-13 1.5.2 MDA过滤器13 1.5.3 MUA过滤器13-15 1.6 邮件过滤器的研究现状15-17 第二章 电子邮件系统17-27 2.1 邮件系统综述17-19 2.1.1 电子邮件工作原理概述17-18 2.1.2 电子邮件的消息格式18-19 2.2 电子邮件的发送与接收19-22 2.2.1 MUA发送邮件20 2.2.2 通过MTA传输邮件20-21 2.2.3 MDA传递邮件21 2.2.4 MRA获取邮件21 2.2.5 由MUA获取邮件21-22 2.3 邮件传输涉及的协议、规则与服务22-27 2.3.1 SMTP协议22 2.3.2 POP与IMAP4协议22-23 2.3.3 DNS服务器在邮件系统中的作用23 2.3.4 MIME—多用途因特网邮件扩展23-27 第三章 邮件过滤系统的总体设计27-55 3.1 邮件系统的设计与实现28-40 3.1.1 邮件客户端运行界面28-32 3.1.2 邮件服务端运行界面32-35 3.1.3 邮件客户端设计35-37 3.1.4 邮件服务器设计37-40 3.2 邮件过滤系统的设计与实现40-52 3.2.1 对邮件主题包含一定关键词的限制40 3.2.2 对信件来源地进行限制40-41 3.2.3 对邮件信头字段大小的限制41 3.2.4 对邮件全文字节数的限制41-42 3.2.5 对邮件附件名的限制42 3.2.6 对邮件附件大小的限制42-43 3.2.7 根据MIME Content-Type和Content-Disposition字段里的文件类型过滤43 3.2.8 对邮件附件内容过滤43-52 3.2.8.1 base64编码与解码44 3.2.8.2 JAVA模式匹配44-45 3.2.8.3 邮件病毒扫描45-52 3.3 收集中心的设计与实现52-55 3.3.1 定义IDL52-53 3.3.2 将IDL编译成Java接口以实现该接口53-54 3.3.3 定义实现此接口的类54 3.3.4 收集中心的实现54-55 第四章 系统设计中的关键技术55-61 4.1 JAVAMAIL技术55-58 4.1.1 会话类(session)55 4.1.2 消息类(MimeMessage)55-56 4.1.3 地址类56-57 4.1.4 身份验证类57 4.1.5 传输类57 4.1.6 存储类和文件夹类57-58 4.2 CORBA技术58-61 4.2.1 ORB58-59 4.2.2 存根与框架59 4.2.3 IDL59-60 4.2.4 命名服务60 4.2.5 JAVA中引入的CORBA包60-61 第五章 邮件过滤性能评价61-63 5.1 实验结果61 5.2 实验结果分析61-63 第六章 总结与展望63-64 6.1 工作总结63 6.2 展望63-64 致谢64-65 参考文献65-68 附录一 开发环境68-69 附录二 部分源代码69-90 作者在读硕士期间发表的论文90 这本书你去书店看看有木有
采纳哦