01_传智播客张孝祥java邮件开发_课程价值与目标介绍

02_传智播客张孝祥java邮件开发_邮件方面的基本常识

03_传智播客张孝祥java邮件开发_手工体验smtp和pop3协议

第3课时 关于邮件的理论以及通过cmd telnet到服务器发送和接受邮件(这一课时很重要)

其实邮件服务器就类似于邮局,发送方发到自己选择的邮件服务器,然后邮件服务器发送到目标服务器,目标服务器接收邮件,然后目标去目标服务器接受邮件。这这个过程中必须注意,除了用户取邮件用的是POP3协议,发送邮件到自己选择的服务器和自己这边的服务器转邮件到目标服务器之间用到的协议都是SMTP协议。只有用户主动去取邮件的时候才是POP3协议。

每个邮箱就相当于我们取信的和发信的邮局提供的邮件箱一样。我们的每个申请的邮箱账号,其实就是一个邮件箱,在邮件服务器上建立了一个账号和空间,邮件会放着这个服务器给我们开的账户的空间里。

邮件服务器按通讯协议分为两种类型:

    SMTP服务器

    POP3/IMAP服务器

发送邮件或者是将邮件转发给另外一个邮件服务器就是用SMTP协议。

如果用户去取邮件,使用的协议就是POP3协议

Smtp服务器端口号是:25

    Pop3服务器端口号是:110

Smtp服务器登陆,首先需要先使用base64格式编码用户名和密码,然后登陆服务器时输入编码后的用户名与密码给服务器验证才会通过,而pop3服务器登陆是不需要使用base64编码的,直接输入原来的用户名和密码。

Dos命令:

 >>Telnet mail.sina.com.cn:25
>>Ehlo itcast_test(账号) //ehlo
<<auth login plain
>>auth login //-->选择身份验证方式 ---->auth login---->输入base64位的账号和密码se
<<
>>basee64 username
<<
>>base64 password
<<
>>Mail from:<iscast_test@sina.com>
<<
>>Rcpt to:<iscast_test@sohu.com>
<<
>>data
From :<liliw@sohu.com>
To:xx
Subject:haha
Date:
Contetn. //邮件内容 .
<< . //点是结束
>>Quit

   

  User 账号
Pass 密码
Stat
List
Retr
Dele
rset

第四课时 发送邮件的原理(相当重要)

一定要注意,其实在cmd中和smtp服务器交流的时候,邮件和服务器之间的关系。

在写邮件之前,需要先定义mail from<>和rcpt to<>,这个是专门和服务器打交道,由服务器识别的。而在写邮件的时候,邮件分两部分,一个是邮件头,一个是邮件内容(从‘data’表示内容开始,data之后是全部的内容,以一个‘.’ 表示邮件内容结束),内容部分的头部分又需要再写一个from:<>,这里面写邮件的发件人,可以是开始的mail from也可以是另外一个邮箱名字。这个邮件头,服务器是不检查的,是给邮件阅读程序看的,所以发出去之后,在客户端邮件阅读程序(outlook)中我们看到的发件人实际上是邮件头上面写的发件人,而不是登陆邮箱的发件人的邮箱。一定要注意这点。所以有的邮件中看到发件人的名字是unknown,就是因为邮件头中没有输入发件人的名字。内容需要写from, to ,subject, date, 然后才是正式的正文

其实就相当于我们自己写了一封信,但是信上面的发信人不是写自己的名字,而是别人的名字,冒充别人,收件人是没办法区分发件人的真实身份的。

如果是普通的客户端访问smtp服务器是需要用户名和密码的,而针对各个smtp服务器之间,是不需要用户名和密码的,否则的话,smtp服务器是不可能知道那么多smtp服务器用户名和密码的。

实际上sina或者是其他邮件服务器提供商(smtp server)都是分为两块的,也就是有两种服务器,

一种是专门给普通用户访问的邮件服务器,

一种是给其他邮件服务器供应商访问的邮件服务器。

如果是普通用户访问的邮件服务器,那么用户访问的时候就需要提供用户名和密码,而其他邮件服务器供应商访问的专门的邮件服务器,是不需要用户名密码的。直接访问。服务器提供商会将专门给其他邮件服务器供应商访问的邮件服务器加入到DNS中,这样当系统查到这个访问的地址来自于DNS的其他邮件服务器,就会认为对方是邮件服务器,允许它不需要服务器密码直接访问这个邮件服务器。而专给个人客户访问的邮件服务器则是不能够加入DNS的,否则其他邮件服务器访问sina.cn时,有可能找到的是这个专用个人访问邮件服务器,那么就会需要其他邮件服务器输入用户密码,导致其他邮件服务器无法登陆,邮件服务器之间无法互相转发邮件。

由于垃圾邮件泛滥,所以,现在网站提供的smtp服务器都要求提供身份验证,这就要求你在客户端软件(outlook)中的账户配置的服务器选项中,发送邮件服务器栏目中选中我的服务器要求身份验证,这样,服务器验证了身份才会和帮用户发送邮件。

     >>ipconf /all
<<
>>nslookup
<<
>>set type=mx
<<
>>sina.com
<<
>>exit

第5课时 解释JavaMail包

JavaMail API按功能分为以下三大类

创建和解析邮件内容的API:Message类是创建和解析邮件的核心API, 它的实力对象代表一封电子邮件。

发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件发送对象,例如SMTP协议

接收邮件的API: Store类是接收邮件核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议

Session类:是用于定义整个应用环境信息的,以及收集客户端与邮件服务器建立网络连接的会话信息。如邮件服务器的主机名,端口号,采用的邮件发送和接收协议等。

其实JavaMail是分为两部分,一部分是接口包,一部分是实现类包。Mailapi.jar其实就是一个接口包,里面是没有实现的,只有在使用的时候,就需要实现包了,这些就是smtp.jar, pop3.jar等

生成邮件的过程中,还使用了一个第三方包,,也就是JAF(JavaBeans Activation Framework. JavaBean激活框架)是一个专用的数据处理框架,用于封装数据,并为应用程序提供访问的和操作数据的接口。Javamail.jar使用了JAF.不过,如果使用的是jdk6,就不需要导入jaf.jar了,因为jdk6中包括了jaf的jar包。

传智播客张孝祥java邮件开发随笔01的更多相关文章

  1. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

  2. 传智播客成都java培训中心秀就业

    传智播客成都java培训中心秀就业 2013年被称为"史上最难就业季",成都传智播客学员如何应对的呢? 成都传智播客的学员在工作经验上颇占优势,我们采用项目驱动式教学模式,具有多年开发实战经验及教学经 ...

  3. 传智播客ADO.Net项目开发教程具体解释

    内容简单介绍: 本教程为传智播客.Net培训课堂的现场录像,请到140623ls" target="_blank">传智播客.Net学院下载很多其它免费.Net视频 ...

  4. 成都传智播客java就业班和基础班

    传智播客成都Java培训,带你走进Java的世界... 我们有咨询的教育团队,一流的名师指导: 我们是重视基础理论建设,强化高端应用技能: 我们有四大JavaEE项目,海量Android项目: 我们是 ...

  5. JSP+SSH+Mysql+C3P0实现的传智播客网上商城

    项目简介 项目来源于:https://gitee.com/2121/shop 本系统是传智播客授课时的开发案例,基于JSP+SSH+Mysql的简单网上商城.在当代开发中,SSH的使用已经逐渐被SSM ...

  6. 成都传智播客java就业班(14.04.01班)就业快报(Java程序猿薪资一目了然)

    这是成都传智播客Java就业班的就业情况,很多其它详情请见成都传智播客官网:http://cd.itcast.cn?140812ls 姓名 入职公司 入职薪资(¥) 方同学 安**软件成都有限公司(J ...

  7. 成都传智播客Java/PHP培训就业率高

    依据传智播客的数据统计,传智播客的学员有五分之中的一个的能在毕业前找到惬意的工作,一半的学员能在毕业后一个月之内找到惬意的工作,一般在毕业后两个月之内绝大多数同学都能找到惬意的工作.而且传智播客毕业学 ...

  8. 成都传智播客java就业班激情洋溢的青春篮球赛

    为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...

  9. [android视频教程] 传智播客android开发视频教程

    本套视频共有67集,是传智播客3G-Android就业班前8天的的课程量.本套视频教程是黎活明老师在2011年底对传智播客原来的Android核心基础课程精心重新录制的,比早期的Android课程内容 ...

随机推荐

  1. Centos 7 Asp.net core 使用QRCoder 报“Unable to load DLL 'gdiplus'"

    环境: Centos7 .Net core 2.0 问题: 使用QRCoder 报“Unable to load DLL 'gdiplus'" 同 https://q.cnblogs.com ...

  2. 从零开始学 Web 之 移动Web(七)Bootstrap

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  3. Java并发编程笔记之ConcurrentHashMap原理探究

    在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap. HashTable是一个线程安全的类 ...

  4. h5活动页开发总结记录

    前几天在做h5活动页面的时候,有这样一个需求 上面的活动排行点击查看历史排行数据,弹出日期选择框,如下图 点击要查看的日期排行数据,这里需要对还没到的日期做处理,让用户不能选择,只可选择今天或者之前的 ...

  5. JavaWeb学习 (十)————Cookie

    一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...

  6. 鸟哥的Linux私房菜:基础学习篇 —— 第六章笔记

    1.下面这些就是比较特殊的目录,得要用力的记下来才行: . 代表此层目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表“目前使用者身份”所在的主文件夹 ~account 代表 account ...

  7. windows环境下pycharm如何设置Linux编码

    最近写代码一直在windows环境下,写完之后再传到Linux端就会出现代码格式错乱. 解决办法: 在windows端的pycharm代码格式设置为unix and os及可以解决这个问题. 如果你要 ...

  8. Spring之Bean的作用域与生命周期

    在前面博客中提到容器启动获得BeanDefinition对象中有一个scope 属性.该属性控制着bean对象的作用域.本章节介绍Bean的作用域及生命周期,了解bean是怎么来的又怎么没的. 一.B ...

  9. MJPEG 格式分析

    MJPEG简介 MJPEG(技术即运动静止图像(或逐帧)压缩技术)是24-bit的"true-color"影像标准.MJPEG的工作是将RGB格式的影像转换成YCrCB格式,目的是 ...

  10. java_单词长度

    题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4.注意,行中 ...