- 浏览: 224877 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
(原创)javascript 实现批量打印《简历》 -
liangchengfck1:
这个只能正对数据量少的批量打印,当你打印10000张数据的时候 ...
(原创)javascript 实现批量打印《简历》 -
dare_:
官网的文档明确说明 是五种 你的默认和no应该是同一种
Spring 中Bean的自动装配六种模式,你懂得几种? -
Franciswmf:
图片上传的东西呢?
java+Ckeditor -
huigou:
地址不对了
ETL Kettle发送邮件时发送失败!高手指点!
“世界上最复杂的邮件”
今天给大家演示一个称之为:“世界上最复杂的邮件”(源代码)。
首先了解一下咋样的邮件称之为:“世界上最复杂的邮件”,上次我在我的博客中已经介绍了一个简单的邮件发送(新浪邮件发送),在这里我就不在多说大家可以进入我的博客:http://blog.csdn.net/wangliaizq10000 进行查看。最发杂的邮件就是莫过于邮件中有图片,音效,视频等等。那么今天我们就来实现一个有图片,有附件,有声音的邮件发送
在发送邮件之前大家先了解一下
RFC822文档来创建一个简单的邮件。
我在我的博客中写到过一个很简单的邮件,简单到只有邮件内容;今天我用这种方式给其加上发件者,收件者,主题,等信息格式如下
刚开始和我在博客中写的简单邮箱发送步骤完全一样 ,打开Dos
----telnet smtp.sina.com//呼叫新浪服务器
ehlo 主机名 如ehlo asus
auth login //登录账号
解密后的用户名,密码 //必须是解密后的
mail from:<发送者> 如:mail from:< wangliaxx@sina.com>
rcpt to:<收件者> 如:rcpt to:< wangliaizqxxxxx@sohu.com >
(邮件头)
from字段 如:from:<hujintao@sohu.com>//不一定是真实的地址 可以假冒
to字段 如 to<wenjiabao@sina.com>//必须是一个真实的邮箱地址
subject字段 如 subject:我是xxx。
cc、bcc字段 如 cc:<邮箱地址>//表示抄送 bcc:<邮箱地址>//表示暗送
邮件头和邮件体,两者使用空行分隔
(邮件体) //data
邮件内容 如: //我是xxxxx 我看好你:。。。。
.(点)结束内容
Quit退出
利用RFC822文档漏洞发送假冒邮件
了解了RFC822文档之后我们在了解一下MIME协议
MIME协议是对RFC822文档的升级和补充,它描述了如何生成一封复杂邮件。通常我们把MIME协议描述的邮件称之为MIME邮件,MIME协议描述的数据称之为MIME消息。
对于一封复杂邮件,如果包含了多个不同的数据,MIME协议规定了要使用分隔线对多段数据进行分隔,并使用Content-Type头字段对数据的类型、以及多个数据之间的关系进行描述。(查看outlook邮件源文件)
都了解了我们就开始发送邮件的过程
使用javamail API 来创建邮件,有Javamail API 可以创建“世界山最发杂的邮件”
在javamail API中有这样几个类
MimeMessage类表示整封邮件,创建邮件。
MimeBodyPart类表示邮件的一个MIME消息。
MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。
世界上最复杂邮件原理
世界上最发杂的邮件代码如下(解决中文乱码):
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; public class MImemessageTest { /** * @throws MessagingException * @throws AddressException * @throws IOException * @throws FileNotFoundException * * * * * */ public static void main(String[] args) throws AddressException, MessagingException, FileNotFoundException, IOException { //创建邮件 MimeMessage message=new MimeMessage(Session.getInstance(new Properties())); //设置属性 message.setFrom(new InternetAddress("wangliaizq10000@sina.com")); message.setRecipient(Message.RecipientType.TO, new InternetAddress("wangliaizq@sohu.com")); message.setSubject("你猜"); //创建正文 MimeBodyPart text=new MimeBodyPart(); text.setContent("猜猜我是谁<img src='xx.jpg'>nicaicaia ", "text/html;charset=gb2312"); //创建图片 MimeBodyPart image=new MimeBodyPart(); DataHandler dh=new DataHandler(new FileDataSource("src\\2.jpg")); image.setDataHandler(dh); image.setContentID("xx.jpg"); //创建附件 MimeBodyPart accth=new MimeBodyPart(); DataHandler acc=new DataHandler(new FileDataSource("src\\大笑.mp3")); accth.setDataHandler(acc); String filename=acc.getName(); accth.setFileName(MimeUtility.encodeText(filename));//解决中文乱码 //描述关系 //图片与正文的描述关系 MimeMultipart mm=new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(image); mm.setSubType("related"); //图片与正文的Bobypart MimeBodyPart part=new MimeBodyPart(); part.setContent(mm); //附件与以上的bobypary MimeMultipart m=new MimeMultipart(); m.addBodyPart(part); m.addBodyPart(accth); m.setSubType("mixed"); //把MIME消息设置到messages中 message.setContent(m); message.saveChanges(); message.writeTo(new FileOutputStream("D:\\55.eml")); } }
结束语:
这种写法现在只支持局域网邮件发送,局域网发送有邮件是需要有邮件服务器,我这里有邮件服务器MailServer。
/如果你想知道更多请继续留意我的博客
http://blog.csdn.net/wangliaizq10000 。多多支持 (指导老师 redarmy_chen)
<!--EndFragment-->
发表评论
-
项目框架和项目架构的区别是什么?
2012-05-17 12:31 1869项目框架和项目架构的区别是什么?谁能告诉我啊! -
(原创)javascript 实现批量打印《简历》
2012-04-16 15:57 20963(原创)javascript 实现批量打印《简历》 ... -
java+Ckeditor
2012-03-23 18:09 1995CKEditor 二次开发 ---- 为 ... -
iteye 这是咋了
2012-03-23 17:45 11iteye这是咋了 发一篇文章就这么难嘛 越来越他妈的垃圾了 ... -
不查不知道 一查全知道(hibernate注解实现set集合排序)
2011-12-21 16:09 1416@ManyToMany(cascade = { Cascade ... -
《终于解决了》检索 COM 类工厂中 CLSID 为 {0002E510-0000-0000-C000-000000000046}
2011-08-24 18:23 42186异常详细信息: System.Runtime.InteropS ... -
JDK7.0语法新特性及下载
2011-08-12 17:28 28201,菱形语法(泛型实例 ... -
系统性能调优总结分享(转载)
2011-07-01 13:33 1556概述 Ø 性能优化的思 ... -
JAVA内存问题:Java heap space
2011-06-29 14:09 1962错误信息: javax.servlet.Servle ... -
Jquery从入门到精通及附件下载(一)
2011-03-30 08:15 3852Jquery从入门到精通及 ... -
Json 浅谈及解析
2011-03-25 17:07 2286Json 浅谈及解析 Json简介 ... -
Ajax 实现分页及表与表的级联
2011-03-24 20:57 1494Ajax 实现分页及表与表的级联 时间过的真快转 ... -
《神》预测本周五 java 考试题!!
2011-03-22 19:56 1253预测本周五 java 考试题!! 1,加载类有哪几 ... -
DOM总结(三)及综合案例
2011-03-17 20:59 1087DOM总结(三)及综合案例 1,DOM属性-----re ... -
DOM 总结(二)
2011-03-16 20:30 1309DOM 总结(二) 查找元素的方法: 1 ... -
DOM 总结(一)
2011-03-16 20:24 1486DOM 总结(一) ... -
javascript实现全选,反选及全不选
2011-03-15 19:53 1403javascript实现全选,反选及全部选 html 代 ... -
仿谷歌,百度分页计算分析 代码实现
2011-03-10 19:32 2038仿谷歌,百度分页计 ... -
Java反射概念及类的反射的实例应用
2011-03-04 10:32 2354Java反射概念及类的反射的实例 一、反射的概念 : ... -
BeanUtils工具包下载及应用
2011-03-04 10:23 18702BeanUtils工具包下载及应用 ...
相关推荐
垃圾邮件,这个互联网世界的顽疾,自20世纪90年代诞生以来,一直以各种形式困扰着全球的网络用户。最早在1993年,垃圾邮件“MAKE.MONEY.FAST!!”出现,宣告了垃圾邮件时代的到来。随后的21世纪初,垃圾邮件的数量...
世界上有许多组织致力于打击垃圾邮件,包括但不限于: - Spamhaus Project:追踪垃圾邮件来源,并维护黑名单数据库。 - SpamCop:提供举报垃圾邮件的服务,并帮助执法机构追踪垃圾邮件发送者。 - UCEProtect:提供...
### Linux诞生和发展的5个支柱 #### 一、概述 Linux 操作系统,自1991年首次公开以来,迅速成为了全球范围内广泛使用...正是这些因素的综合作用,才使得 Linux 成为了当今世界上最成功、最受欢迎的开源操作系统之一。
世界上互联网互联网的诞生最早可以追溯到20世纪60年代后期到70年代的初期 中国互联网的诞生最早1987年9月20日 网络营销是伴随互联网进入商业应用和信息技术的发展逐渐诞生与发展的.尤其是万维网( WWW)、电子邮件、...
Enron Email Dataset,正是在这一背景下诞生的重要研究资源,它为学术界提供了一个独特的窗口,用来分析企业内部沟通、决策过程以及可能存在的不当行为。 该数据集包含了安然公司150位高管和中级管理人员的约500万...
足球世界杯作为全球最受关注的体育盛事,自然也受到了网络媒体的广泛关注。研究互联网参与足球世界杯报道的历史,可以揭示网络媒体在体育赛事报道中的演变过程,包括报道内容、形式的创新,以及在网络环境下赛事报道...
1. **ENIAC**:ENIAC(Electronic Numerical Integrator and Computer)是世界上第一台通用电子计算机,它于1946年诞生于美国。ENIAC主要由电子管组成,而非集成电路、晶体管或存储器。它的出现标志着计算机时代的...
回顾这位天才销售员的诞生,我们可以从中汲取的不仅是成功的秘诀,更是一种面对挑战时的勇气与决心。 幼年时的贝佐斯,已展现出了与生俱来的创新思维和独立精神。他不满于婴儿床的设计,试图以自己的方式来改造它,...
来自世界各地的程序员积极参与Linux的开发,通过邮件列表、论坛和GitHub等平台进行交流和协作,共同解决技术问题,推动Linux的进步。 在Linux的发展过程中,这些支柱相互支持,形成了一个强大而充满活力的生态系统...
自1986年第一个已知的电脑病毒“Brain”诞生以来,电脑病毒经历了从简单的复制体到复杂多变的形态的发展过程。随着时间的推移,病毒变得更加难以检测和清除。 #### 3. 微软与病毒的关系 微软操作系统因其广泛的应用...
ENIAC是世界上第一台电子计算机,诞生于1946年。 2. 第四代计算机逻辑元件采用的是大规模、超大规模集成电路。第四代计算机采用了集成电路技术,提高了计算机的性能和可靠性。 3. 计算机硬件主要包括主机和外围...
ENIAC 是世界上第一台电子计算机,它于 1946 年诞生,标志着计算机时代的开始。 2. 第四代计算机逻辑元件采用的是大规模、超大规模集成电路。计算机的发展经历了多个阶段,从第一代电子管到现在的微处理器,集成...
在魔兽世界的游戏世界中,玩家需要管理大量的物品和装备,而“飞天Bagnon”正是为了解决这一问题而诞生的一款强大整合插件。这款插件专为3.35版本及以下的魔兽世界设计,它极大地提升了游戏内的背包管理效率,让玩家...
1. **ENIAC**:世界上第一台电子计算机的名称。 2. **第四代计算机**:采用大规模、超大规模集成电路作为逻辑元件。 3. **计算机硬件**:主要包括主机和外围设备。 4. **多媒体技术**:是集成处理多种媒体信息的技术...
10. 第一台计算机诞生时间:世界上第一台电子计算机ENIAC于1946年在美国诞生。 11. 中央处理器:通常合称为中央处理器的是运算器和控制器。 12. 断电数据丢失的存储设备:RAM(随机存取存储器)在断电后会丢失数据...
文章的标题可能是探究"at"如何演变成"@"的过程,而选项B("How @ came into being.")最能准确地概括文章的主题,讲述了"@"符号的诞生和演变。选项C("How monks invented @")虽然提及了僧侣的作用,但过于具体,...
10. 第一台计算机诞生时间:世界上第一台计算机于1946年在美国诞生。 11. 中央处理器:中央处理器通常由运算器和控制器组成。 12. 断电丢失数据的存储设备:RAM在断电后会丢失其中的数据。 13. 1个字节等于8个二...
科学技术的发展日新月异,在...Internet面向人类社会,世界上数以亿计的人们利用它进行通信和信息共享,通过发送和接收电子邮件,或和其他人的计算机建立连接、参加各种讨论组并免费使用各种信息资源实现信息共享。
3. 第一台电子数字计算机:世界上第一台电子数字计算机ENIAC于1946年研制成功,选项B正确。 4. 社交网络起源:社交网络起源于网络社交,最早的网络社交可以追溯到电子邮件的使用,选项A正确。电子邮件作为最早的...