Java邮件开发与反垃圾邮件机制
第一篇:Java邮件开发与反垃圾邮件机制
Java邮件开发与反垃圾邮件机制
一、JavaMail与SMTP
通常我们使用JavaMail,都是通过SMTP服务器来发送邮件,比如说我有一个domain1.com的邮件账号,想给domain2.com的邮箱发送邮件。
用户A首先将需要发送的邮件通过SMTP协议发送给他所在的邮件服务器domain1,然后domain1判断收件人所在的域为domain2,于是domain1通过SMTP协议再重新将邮件发送到domain2。最后用户B连接到自己的邮件服务器domain2,接收邮件。通常domain1会将邮件缓存,以便出错时重新发送,如果重试几次后还是发送失败,可能会给用户A发送一封邮件以告知邮件发送失败。如果用户A是一个应用的话,很难知道邮件发送成功与否。
另外一种做法是,用户(或者我们自己的应用)直接连接对方的SMTP服务器来发送邮件,其实就是连接到对方的25端口,然后按顺序发送一些SMTP的命令。详细的SMTP信息,大家可以查阅相应资料。JavaMail对这些底层的数据传输做了很好的包装。
只要用户A发送的数据格式和前面domain1发送的相同,对于domain2来说,没什么区别。而且在这种方式下,如果邮件发送失败,比如收件人地址不存在,用户A会马上得到邮件发送失败信息。所以在实际的应用中,这种方式比较常见。但是这种方式需要知道对方的SMTP服务器的地址,在Windows下,可以在命令行执行nslookup,输入 set type=mx,然后输入需要查找的域名,比如hotmail.com,就可以查找到它的SMTP服务器地址。同样在Java中,可以通过JNDI或者开源的dnsjava查找收件人所在域的SMTP服务器地址。这里给出一个简单的例子。
public class JavaMailSendingHandler implements ILocalEmailSendingHandler {public void send(String to, String from, String subject, String content, String contentType)throws Exception {
Properties props = new Properties();
props.put(“mail.smtp.localhost”, getHost(from));
String server = getSMTPServerByJNDI(getHost(to));
props.setProperty(“mail.smtp.host”, server);
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setContent(content, contentType);
message.setSender(new InternetAddress(from));
message.setFrom(new InternetAddress(from));
message.setRecipient(RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setHeader(“Content-Type”, contentType);
message.setHeader(“Content-Transfer-Encoding”, “7bit”);
SimpleDateFormat format = new SimpleDateFormat(“EEE, d MMM yyyy HH:mm:ss Z”);
message.setHeader(“Date”, format.format(new Date()));
Transport.send(message, new Address[] { new InternetAddress(to)});
}
private String getHost(String address){
return address.substringaddress.indexOf('@')+ 1);
}
//通过JNDI 查找给定域的邮件服务器。
private String getSMTPServerByJNDI(String host)throws Exception {
Properties jndiEnvironmentProperties = new Properties();
jndiEnvironmentProperties.put(“java.naming.factory.initial”,“com.sun.jndi.dns.DnsContextFactory”);
DirContext initialDirContext = new
InitialDirContext(jndiEnvironmentProperties);
Attributes attributes = initialDirContext.getAttributes(host, new String[] {“MX”});
Attribute attribute = attributes.get(“MX”);
String[] servers = new String[attribute.size()];
for(int i = 0;i < attribute.size();i++){
servers[i] = attribute.get(i).toString();
}
String server = servers[0];
server = server.substring(server.indexOf(“ ”)+ 1, servers[0].length()-1);return server;
}
}
二、反垃圾邮件机制
最简单的反垃圾邮件机制就是检查邮件的每个头信息是否短缺,格式是否正确。另外比较复杂的一种是SPF(Sender Policy Framework),它主要用来防止伪造的邮件地址。还是采用前面的例子说明,在用户直接给domain2发送邮件时,需要告示邮件发送者地址,这样domain2会根据邮件发送者的地址所在的域名,查找到该域的有效的邮件服务器地址。如果用户所在的计算机不再查找的结果之中,那就说明,发件人地址是伪造的,从而断定是垃圾邮件。
为了能够通过收件人邮件服务器的SPF检查,需要向所在域的域控制器添加相应的SPF信息。在Windows服务器下,可以通过添加TXT记录来完成。
第二篇:反垃圾邮件
反垃圾邮件
自2000 年后,互联网技术飞速发展,邮件技术已经逐步成为了现代社会最重要的沟通工具之一。然而,予生俱来的是垃圾邮件对邮件用户的侵扰;到2006年末,这种侵 扰已经成为公认的最大的互联网应用威胁之一。有许多数字让人触目惊心:每天全球产生的垃圾邮件达1000封;用户收到的邮件之中,有94%是垃圾邮件; 美国、中国是全世界最大的两个垃圾邮件生产国家和消费国;中国网民每周收到的垃圾邮件数平均达到了19.4封。这些垃圾邮件充斥着各种非请求的商业广 告、色情与反动内容、政治敏感话题传播、甚至计算机病毒与恶意代码,给我们正常的邮件收发增加困难,使企业的网络与邮件资源被恶意浪费,甚至有可能对组织 与个人的硬件资产遭受入侵、破坏等损失。垃圾邮件最新的形式是钓鱼邮件,Spammer通过传播类似银行及会员机构邮件的方式,来骗去用户的用户名和密 码,直接获取非法利益;而有些则通过恶意代码控制计算机,使网络用户的计算机变成Zombie PC,利用这些PC来发送大量广告等垃圾邮件以获取商业价 值。可以说,反垃圾邮件的斗争以及到了白热化的程度。
中国的反垃圾邮件技术研究几 乎和国外同步,但产品化进程比较慢,基本上到2003年后才有初步能够应用的专业级产品与系统方案。在国际上,有两大开源社区比较权威,目前世界上大部分 垃圾邮件的核心技术都来源这两个社区,一个是著名的SpamAssassin,一个是,Razor。而中国目前还没有形成比较成规模的反垃圾邮件技术开源 社区。在技术上,特别是产品结构上都借鉴这些著名的先行者。
说到反垃圾邮件的技术方案,一般有三种类型的解决方案。
第一种是初级的用户级客户端方案。大部分人都认为客户端方案效果不好,这里面其实有个误区,很多说法是包含了商业利益在里面的,所以就不能够客观的评 价。客户端方案,有些人就认为是Foxmail、Outlook之类的邮件客户端自带的简单的黑白名单判别垃圾邮件功能,其实这是有误的。真正的客户端方 案,不仅包含这些黑白名单功能,也包括其他类型方案一样的一些手段,象实时RBL、指纹检查、信任网络、甚至包含内容过滤等技术,由于它服务的对象是“客 户端个人用户”,没有关注邮件服务器而已,然后它仍然是专业级别的反垃圾邮件防方案。关键是,需要找到专业的产品,而且这种方案在50人以下应用环境时具 有很好的经济价值,在超过50人的应用环境下,这种方案就没有其他的方案更具竞争力。代表产品是全球知名的反垃圾邮件技术公司Cloudmark公司的个 人版反垃圾邮件产品。
第二类技术方案是反垃圾邮件网关方案。这种方案是目前应用最广泛,也是应用最简便的企业级反垃圾邮件方案。这种方案是 各种反垃圾邮件技术综合到一台设备或者软件系统当中去,放在邮件服务器的前端,对进出邮件系统的所有邮件进行过滤、审查,对违反规则或者具有明显垃圾邮件 特征的邮件予以处置。网关型的反垃圾邮件方案,其形态可以是专用硬件产品,也可能是软件形式。需要特别强调的是,传统上认为硬件产品比软件产品好,这种 认识也是有很大偏差的,需要差别的看:如果反垃圾邮件网关软件能够与邮件系统实现真正意义上的无缝结合的化,是能够大大提升系统的整体性能的,而不是象部 分商业公司宣称的那样,硬件产品一定是最好的;原因很简单: 这中间节省了两个计算环节(反垃圾邮件系统在将邮件系统解包检后,可以不用打包就可以直接转 给邮件系统接受;而邮件系统不需要先对邮件进行解包,就可以直接接受--减少动作,就意味着性能的提高)。
网关方案做为最主要的企业级反垃圾邮件方案,因各商业和研究机构的技术路线不同,主要有3种:
(1)基于经验规则和内容检查技术的技术路线。这类反垃圾邮件网关,以内容检查为主,主要的检查手段包括关键字过滤、贝叶斯过滤、基于规则的评分系 统、邮件指纹检查、黑白名单技术、速率控制等等。需要的是提取样本、提取内容特征等信息,来检查与过滤垃圾邮件。代表的产品是梭子鱼反垃圾邮件系统。需 要注意的是,这类产品大多数需要进行大量的内容检查计算,对产品的系统结构和硬件平台的系统资源要求比较,性能峰值不是很高,特别是部分产品是用pear 编写的,程序的限制,使得性能成为其最主要的瓶颈。这点用户在选择时是需要关注的,选型时尽量采用高一点的型号,以应对突然的邮件高峰。
(2)智能行为识别技术路线。由于认识到基于规则与内容技术路线在性能上的局限性,有部分技术人士摈弃了内容检查,而是将产品方案的主要检查手段放在了邮 件的协议分析。这类技术通过总结和分析垃圾邮件发送者的各种共性行为,比如用客户端群发软件发送、高频率发送、Dns伪装、IP欺骗等等方法,解析出这 些“垃圾行为”的特征并形成规则,用这写规则来判别一封邮件是否合法。这类技术,同时包括了众多的邮件合规性认证机制;同时也包含了部分杀病毒等内容
层技 术。同样需要大家注意的是,这类技术针对的是大规模的、以群发为特征的垃圾邮件,而针对单个、无规律的、甚至是合法来源发送非法内容的邮件,没有很好的 解决方案。因为它不强调内容检查,而对对垃圾邮件判定最重要的标准是“内容”非法!但,这种技术已经能够拒绝大部分垃圾邮件了,因为绝大部分垃圾邮件确 实是通过群发的方式产生的。这类产品的代表厂商是敏讯科技,以及来自台湾的硕奇公司反垃圾邮件产品(该公司更宣称完全运用行为识别技术来反垃圾邮件)。
(3)混合模式路线。这种技术路线强调过程化处理技术,利用过程化处理技术整合各种反垃圾邮件技术,既包括基于协议分析的智能行为识别,也包括基于规则 与内容检查的模式对比路线。反垃圾邮件网关在智能过程化处理平台的控制下,有次序的让邮件接受各个层次的合规性检查与内容检查。综合应用行为识别技术,在 协议层对TCP/IP进行分析规范发件连接行为、在SMTP层对邮件从Hello、Auth、From、To、Data等各个层次进行合规性检查,对违发 正常规则的邮件进行重点分析,对明显的群发行为予以处置。而内容检查阶段,也是严格按照“过程”来进行的,病毒查杀、用户级黑白名单、关键字、贝叶斯过 滤、指纹检查、以及其他的基于内容检查的技术。这类网关的设计架构比较好,“过程化”的处理办法,让大量的垃圾邮件在“前端”就被过滤掉,而在内容阶段 系统的工作量非常的少,能够大幅度的提升系统的整体工作性能和垃圾处理能力。这类产品的代表是Commontouch反垃圾引擎,以及智海华程 CyanFilter反垃圾邮件引擎。他们共同的特点是过程化处置,都拥有自己核心的反垃圾邮件引擎。Coummontouch的反垃圾引擎采用实时检 查技术,轮回检查信任网络;而CyanFilter反垃圾邮件引擎则包含了中文分词、特征进化引擎技术等等,使得青莲Cyanlotus反垃圾网关更具有 强大的中文垃圾能力。另外,Cloudmark公司的电信级反垃圾邮件网关也同样拥有这中能力,其基因算法与全球最大“可信任用户网络”更是无与伦比。
第三类是ASP反垃圾邮件服务方案。这种方案主要针对用户数量少于500人的中小企业环境。反垃圾邮件服务提供商首先建立一个反垃圾邮件服务中心,这 个中心的系统拥有同时向多域、多服务器提供反垃圾服务的能力。用户在购买了反垃圾邮件服务后,将自己邮件地址的MX记录指向该服务中心,该服务中心同时添 加该用户域名,这样用户的邮件在到达用户的邮件系统(不管是购买的空间的方式,还是有独立服务器)前,首先达到ASP反垃圾邮件服务中心进行过滤检查,达 到净化垃圾的目的。这种方案比较经济、不受地域和部署方式的限制。但,目前为止,国内还没有实际投入运营的反垃圾邮件ASP出现。
用户,不管是个人用户还是企业级用户,在选择反垃圾邮件方案时,都需要认真考虑一下几个因素:
(1)经济性。个人用户和数量比较少的企业,可以选择采用专业客户端或者ASP反垃圾邮件服务的解决方案,既节省投资也具有同样的反垃圾效果,而且免去了后期维护之类。
(2)反垃圾系统的反垃圾效果。对反垃圾系统效果的评价一般包括垃圾邮件识别率、漏报率,同时更需要关注垃圾邮件误报率,特别是将正常邮件判别为垃圾 邮件的“假阳性”误报问题,这是反垃圾邮件系统的最关键的参考因素。我们可以容忍一天收到若干垃圾邮件(当然是数量不多的情况下),但所有人都不能忍受有 正常的邮件被错误的判定为“垃圾”而遭受“丢弃”!而评价反垃圾邮件系统反垃圾效果的方法,就是实际试用!因为每个用户受的垃圾邮件类别是不一样 的,有的用户垃圾邮件主要是英文垃圾、有的是中文垃圾、有的是图片的、有的则是广告文字的、还有的是钓鱼类的、而有的则是以病毒垃圾为住。不同的垃圾邮件 特征,需要采用不同的反垃圾邮件产品方案:如英文垃圾多,则我们可以首选国外专业产品;如果中文垃圾多,则首先要考虑国内的,特别是有中文分词技术(由于 中、日、韩三国语言的双字节及不分词的特殊性,一般反垃圾产品能难有效应对);而对病毒垃圾多的,则可以考虑主要由杀病毒公司提供的反垃圾邮件产品。
(3)注重系统的整体性能。反垃圾邮件产品,如果性能不过关,随着业务的增长和垃圾邮件泛滥问题的日益严重,可能会有很大问题,另外性能问题有可能会影 响我们正常的邮件收发效率;由于产品在设计和硬件配置上的缺陷(特别是产品结构与设计语言的缺陷),导致邮件堵塞、溢出、正常邮件丢失、系统瘫痪等等,将 会使我们损失惨重!
(4)管理简便与灵活性。一般来讲,灵活性与简便的要求是矛盾。我们的原则是,逐步减少网管人员和用户的工作量,同时又给 予网管和用户最大限度的个性化需求。如每个用户都应该拥有自己的个性化黑白名单、自己个性化的关键字过滤策略等等,以使得我们反垃圾邮件系统更具有针对性 和效率。选择产品时,一般要考虑web管理、参数设置简单、管理维护工作量少、拥有智能(特别是有自学习能力)的产品。同时,产品的升级要及时,特别是病 毒库的升级。
综合以上的一些所述,用户在进行反垃圾邮件工作时,要全面了解各种反垃圾邮件方案与自己的实际需要想对应的程度,我们不能一 味的听**厂家或者组织宣称自己是最好的和唯一好的解决方案,最好与最合适只有我们自己说了算。品牌和市场保有量在中国没有参考意义(大部分品牌都是通 过大量的宣传得来的,而中国用户是出名的“随大众,爱面子”),建议的做法是“试用”用实际效果说话!特殊的,在中国反垃圾,首先要把重点放在“中文”垃 圾上、图片垃圾、钓鱼垃
圾上!同时,还要看该反垃圾方案是否具有完备的“挽回”机制,有全面的日志包括垃圾邮件日志、阻断邮件日志(大部分产品没有此功 能)、病毒邮件日志以及收发的正常邮件日志。
反垃圾邮件是一件任重道远的事业,需要我们大家的共同努力
第三篇:邮件群发如何避开反垃圾邮件机制
强比科技:400-636-0163
邮件群发如何避开反垃圾邮件机制
邮件群发一直是营销圈内人的热点话题。大家赞誉邮件群发的高性价比,却又因群发邮件的时候的送达率差,阅读率少,邮件群发工具选取不当大量进垃圾箱等问题困扰。首先说说最近邮件营销的朋友都会频繁遇到几种情况:
1.邮件发不出去
2.邮件进垃圾
3.连垃圾都进不了(被拦截,主要针对QQ邮箱)
先说第一个问题如何送达群发邮件
一朋友,刚接触邮件群发软件的时候只用了一个邮箱号,然后弄了1W多个收件地址,最后的结果发了20封左右就不能发了,这个是必然的,无论哪个邮箱服务商都不可能让一个邮箱短时间内发送大量的邮件,这个限制比例大约是1:20,想发10000封邮件就得有500个发件箱,所以想群发邮件就得大量的购买邮箱,如果是企业邮箱发的会多一些,需要的邮箱数量会少些,但为什么都不肯用企业邮箱呢?我想后果多严重无需多在赘述。不过,U-Mail邮件群发系统在资源和发送机制上就找到了一个很好的契机。通过建立数百台邮件服务器进行群发。如此一来,通过邮件服务器进行邮件群发所需的邮箱问题就可以解决了,只需一个帐号就可以无休止的发送邮件。
第二个问题如何成功送达
由于邮件群发的高性价比营销,各路商家促销推广信息对用户邮箱可谓是进行了彻底的“狂轰乱炸”。大量垃圾邮件引发用户强烈不满,让网易、QQ邮箱、hotmail等各大邮箱服务商进行了反垃圾邮件的限制策略。比如,QQ邮箱的反垃圾邮件规则特别来历,甚至有一些正规网站,正规发信都会被认为是垃圾邮件,腾讯宁可错杀一千也不放过一个,所以我们就要了解QQ邮箱的一些发垃
Java邮件开发与反垃圾邮件机制
本文2025-01-10 04:33:38发表“精品范文”栏目。
本文链接:https://www.sowenku.com/article/178409.html
- 专题13 大作文-五年(2019-2023)高考语文真题分项汇编(全国通用) (解析版).docx
- 专题13 大作文-五年(2019-2023)高考语文真题分项汇编(全国通用) (原卷版).docx
- 专题12 微写作-五年(2019-2023)高考语文真题分项汇编(全国通用) (解析版).docx
- 专题12 微写作-五年(2019-2023)高考语文真题分项汇编(全国通用) (原卷版).docx
- 专题11 名著阅读-五年(2019-2023)高考语文真题分项汇编(全国通用) (解析版).docx
- 专题11 名著阅读-五年(2019-2023)高考语文真题分项汇编(全国通用) (原卷版).docx
- 专题10 语言文字运用(选择题组)-五年(2019-2023)高考语文真题分项汇编(全国通用) (解析版).docx
- 专题10 语言文字运用(选择题组)-五年(2019-2023)高考语文真题分项汇编(全国通用) (原卷版).docx
- 专题09 语言文字运用(选择+简答题)-五年(2019-2023)高考语文真题分项汇编(全国通用) (解析版).docx
- 专题09 语言文字运用(选择+简答题)-五年(2019-2023)高考语文真题分项汇编(全国通用) (原卷版).docx