传智播客张孝祥java邮件开发随笔01
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的更多相关文章
- 传智播客C/C++各种开发环境搭建视频工具文档免费教程
传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...
- 传智播客成都java培训中心秀就业
传智播客成都java培训中心秀就业 2013年被称为"史上最难就业季",成都传智播客学员如何应对的呢? 成都传智播客的学员在工作经验上颇占优势,我们采用项目驱动式教学模式,具有多年开发实战经验及教学经 ...
- 传智播客ADO.Net项目开发教程具体解释
内容简单介绍: 本教程为传智播客.Net培训课堂的现场录像,请到140623ls" target="_blank">传智播客.Net学院下载很多其它免费.Net视频 ...
- 成都传智播客java就业班和基础班
传智播客成都Java培训,带你走进Java的世界... 我们有咨询的教育团队,一流的名师指导: 我们是重视基础理论建设,强化高端应用技能: 我们有四大JavaEE项目,海量Android项目: 我们是 ...
- JSP+SSH+Mysql+C3P0实现的传智播客网上商城
项目简介 项目来源于:https://gitee.com/2121/shop 本系统是传智播客授课时的开发案例,基于JSP+SSH+Mysql的简单网上商城.在当代开发中,SSH的使用已经逐渐被SSM ...
- 成都传智播客java就业班(14.04.01班)就业快报(Java程序猿薪资一目了然)
这是成都传智播客Java就业班的就业情况,很多其它详情请见成都传智播客官网:http://cd.itcast.cn?140812ls 姓名 入职公司 入职薪资(¥) 方同学 安**软件成都有限公司(J ...
- 成都传智播客Java/PHP培训就业率高
依据传智播客的数据统计,传智播客的学员有五分之中的一个的能在毕业前找到惬意的工作,一半的学员能在毕业后一个月之内找到惬意的工作,一般在毕业后两个月之内绝大多数同学都能找到惬意的工作.而且传智播客毕业学 ...
- 成都传智播客java就业班激情洋溢的青春篮球赛
为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...
- [android视频教程] 传智播客android开发视频教程
本套视频共有67集,是传智播客3G-Android就业班前8天的的课程量.本套视频教程是黎活明老师在2011年底对传智播客原来的Android核心基础课程精心重新录制的,比早期的Android课程内容 ...
随机推荐
- UFLDL 教程学习笔记(一)神经网络
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...
- Linux内核源码分析之调度、内核线程模型 And Centos7.2's Kernel Resource Analysis
本文分为概述.历史.el7.2代码架构图解三部分. 解决的问题: a.Kernel调度发展过程: b.以架构图的方式,详解el7.2具体调度实现.内核线程模型.调度时间片计算,以及探究整个Kernel ...
- underscore.js源码解析【数组】
// Array Functions // --------------- // Get the first element of an array. Passing **n** will retur ...
- 从零开始学 Web 之 JavaScript(四)数组
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- mybatis mapper xml文件的导入方式和查询方式
mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...
- netty源码解解析(4.0)-10 ChannelPipleline的默认实现--事件传递及处理
事件触发.传递.处理是DefaultChannelPipleline实现的另一个核心能力.在前面在章节中粗略地讲过了事件的处理流程,本章将会详细地分析其中的所有关键细节.这些关键点包括: 事件触发接口 ...
- Spark SQL结构化数据处理
Spark SQL是Spark框架的重要组成部分, 主要用于结构化数据处理和对Spark数据执行类SQL的查询. DataFrame是一个分布式的,按照命名列的形式组织的数据集合. 一张SQL数据表可 ...
- windows下mysql-5.7.18安装
在官网下载了mysql压缩包,按照官网:https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html的教程安装,但是出错,后面根据 ...
- 如何利用Maven Repository下载开源软件jar包
1.打开Maven Repository 网站:https://mvnrepository.com/ 2.输入需要寻找的jar包名称,比如mybatis,点击search,一般第一个就是 3.点击选择 ...
- 如何在 ASP.NET Core 测试中操纵时间?
有时候,我们会遇到一些跟系统当前时间相关的需求,例如: 只有开学季才允许录入学生信息 只有到了晚上或者周六才允许备份博客 注册满 3 天的用户才允许进行一些操作 某用户在 24 小时内被禁止发言 很显 ...