前言
在几年以前,相信不少朋友都听说过,马云同志创办阿里巴巴的时候,还不会发邮件。也不知道在阿里巴巴上市之后,他学会收发邮件了没有!呵呵。我是曾经从内心里“瞧不起”过,至少认为在这一点上我比他强很多。后来我才发现,我未必懂得收发邮件。除了我,还有很多的码农也根本不懂得收发邮件,更不懂得Email里面的工作原理。借此,向大家介绍一下和Email相关的技术。
老实说,我在七八年前就有了自己的雅虎邮箱,一直断断续续有用过。直到后来参加工作后,由于经常需要邮件沟通,我才发现,原来电子邮件是这样用的。在我的习惯思维里,一直以为邮箱是必须在提供商的网站上才能登录,然后必须在对应的网页里收发、查看、删除邮件(比如我注册了雅虎邮箱,必须在雅虎网站去登录,然后才能进去操作)。后来有同事推荐了FoxMail,在配置过程中,我才知道了什么是SMTP/POP3协议,后来才发现,原来office中的Outlook,也是一款优秀的邮件客户端。或许有很多朋友和我一样,也是这么天真的认为的。聊点题外话,其实一般的大公司都非常注重“邮件”的,这包含你日常工作中的沟通,工作安排,工作记录等。每天及时收发邮件,也是一种良好的工作习惯。一般公司都有自己的企业邮箱和邮件客户端。当然,小公司好像不太提倡这个,面对面沟通就好了,一般的根本没有这个“工作习惯”。所以,很多人根本没去了解过。包括我们很多开发人员,IT人员,都还不太了解其流程及工作原理。
浅析电子邮件的原理
在配置Outlook或者foxMail来收发邮件时,肯定会遇到SMTP协议和POP3协议的配置选项。那这两个协议分别是啥意思呢?网上都有翻译,我不会复制粘贴了。
首先,我会介绍一些常识,然后结合通俗的例子,再结合图文的方式来讲讲电子邮局其中的流程及工作原理。随后,我将会用windows 命令行的方式,登录邮件服务器,用命令行的方式手工发送/接受一封电子邮件。相信这样子,你将会透彻的理解其中的工作原理。
电子邮件的一些基本常识:
1.邮件服务器
2.电子邮箱
3.邮件客户端软件
4.邮件传输协议
5.电子邮件的传输过程
首先要明白这些“是懂非懂”的概念,才能更好的理解。
在Internet上要想提供电子邮件的功能,必须要有专门的电子邮件服务器。国内比较有名的就是“四大门户”的邮箱,国外的包括Gmail、Yahoo等。这些都是面向公众的,而且大部分免费提供的。大多数的企业,也都具有自己的企业邮件服务器,提供内部使用,或者日常工作中对外使用。
电子邮件服务器的主要功能:
1)接受用户投递过来的邮件
2)将用户投递过来的邮件转发给目标邮件服务器
3)接受其他邮件服务器转发过来的点邮件,并存入到为其管理者所分配的空间中
4)为前来查收/读取邮件的用户提供服务(当然还包含删除。移动等等操作)
如图所示:

1.用户Dylan写好一封邮件,交给了Sina的邮件服务器。完成第一步操作,这使用的就是SMTP协议。用户提交,服务器接受,使用的都是SMTP协议。
2.Sina的邮件服务器收到Dylan的邮件后,根据地址信息,又转发给了QQ的邮件服务器,这两台邮件服务器的收发,使用的都是SMTP协议。
3.有人用QQ邮箱,发送了一封Email给Dylan。所以,QQ的邮件服务器,将邮件发送给Sina的邮件服务器。这两台服务器的收发,使用的都是SMTP协议。
4.第四部比较特殊。是用户Dylan先主动请求Sina的邮件服务器,要求取自己的邮件。服务器知道后,再将该用户Dylan所管理的存储空间中的邮件,返回出去给Dylan。请一定记住,是用户先请求,而不是服务器先响应。这个过程中使用的POP3协议。
网上有些人解释,说SMTP协议就是负责发邮件,POP3协议就是负责收邮件。其实这是不太正确的。多台邮件服务器之间通信,收/发其实都是使用的SMTP协议。
而用户必须主动请求邮件服务器,才能获取到属于用户自己的邮件信息。这个过程中,才使用的是POP3。
其实可以把Internet上的“电子邮件服务器”,当作是一种“电子邮局”,或者直接理解为现实生活中的邮局。
1)用户递交包裹给深圳的邮局,深圳的邮局接受到包裹,再把包裹转发给了武汉的邮局。这其实易经完成了一次邮寄过程,使用的都是SMTP协议。
2)而邮局通常不会主动送货给用户的,也不主动通知你(除了最近几年流行的EMS外)。所以,用户只能主动跑到邮局去,询问邮局的工作人员。
如果邮局的人发现有属于该用户的包裹,会将包裹交给该用户。这个过程就使用的是POP3协议。
请牢记,邮局不会像快递那样主动送货的,必须是用户主动去邮局询问并取包裹。所谓协议,其实可以理解为一种规范,一种特定的“通话语言”。
前面说了这么通俗的例子,相信你已经了解了大致的流程,更重要的是,明白了SMTP/POP3这两种协议。(当然,还有其他的协议,这里不做过多介绍)
友情提示:本文不打算讲解如何配置一台邮件服务器,因为这是网络管理员/系统管理员应该掌握的内容。市面上的邮件服务器软件繁多,在不同的服务器系统上也有多种实现。微软的Exchange Server , Apache James 这些都是比较流行的。
电子邮件的传输过程,详细信息如图:

图上已经标明得很清楚了,相信经过前面的介绍。大家都能够理解整个交互过程了。
下面,我讲用windows命令行的方式,来演示发送和接收/查看电子邮件
首先,登录我的sina邮箱,准备发送一封邮件到我的QQ邮箱里面去。
运行“cmd”,打开Commond控制台。(提醒大家一下,这不是DOS。我经常发现某些人把其称为DOS,觉得很可笑。还有些培训讲师说这是DOS,误人子弟)
使用telnet命令,输入 telnet smtp.sina.com 25 回车
注释:sina提供的SMTP服务器地址是 smtp.sina.com ,使用的端口号是SMTP协议默认端口号 25 (Gmail好像用的是465和587)
提示:部分用户使用的windows 7的操作系统,可能会提示telnet命令不可用。请在控制面板,”打开/关闭功能“中安装telnet客户端,具体不解释。如果有些朋友还没有用过telnet,那我也只能先吐血了。天朝程序员水平参差不齐,作为一个windows平台上的开发人员,大部分的连个基本的Dos命令都不会。
有图有真相,我在每行命令和输入里,都加了详细的注释:

发送完成后,开始准备接受并查看邮件了
同理,telnet 到POP3服务器去
telnet pop.qq.com 110 腾讯的POP3服务器地址是pop.qq.com 使用的端口号也是默认的 110 (报警啊!)
有图有真相:

好了,朋友们不妨试着用命令行的方式,去体验电子邮件的过程,这能够帮助你理解其中的原理。时间不早了,码奴也要准备休息了。
改天将会向大家详细讲解,在.NET平台中发送邮件的几种情况和实现方式(包括:群发的命中问题、垃圾箱的问题、乱码问题、html邮件、文本邮件、选.NET自带 Or 使用邮件群发组件? 等等)。
相关推荐
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
模型权重文件介绍 1. 基于开源数据集训练,训练集包含15000+图片,训练100 epochs 2. 基于YOLO11x模型进行的训练 3. 模型识别类别有2类:helmet、no-helmet
ARM仿真器快速使用资料+绿色版软件 附视频-20210701.zip
内容概要:本文详细介绍了QY20B型汽车起重机液压系统的设计过程,涵盖其背景、发展史、主要运动机构及其液压回路设计。文章首先概述了汽车起重机的分类和发展历程,强调了液压技术在现代起重机中的重要性。接着,文章深入分析了QY20B型汽车起重机的五大主要运动机构(支腿、回转、伸缩、变幅、起升)的工作原理及相应的液压回路设计。每个回路的设计均考虑了性能要求、功能实现及工作原理,确保系统稳定可靠。此外,文章还详细计算了支腿油缸的受力、液压元件的选择及液压系统的性能验算,确保设计的可行性和安全性。 适合人群:从事工程机械设计、液压系统设计及相关领域的工程师和技术人员,以及对起重机技术感兴趣的高等院校学生和研究人员。 使用场景及目标:①为从事汽车起重机液压系统设计的工程师提供详细的参考案例;②帮助技术人员理解和掌握液压系统设计的关键技术和计算方法;③为高等院校学生提供学习和研究起重机液压系统设计的实用资料。 其他说明:本文不仅提供了详细的液压系统设计过程,还结合了实际工程应用,确保设计的实用性和可靠性。文中引用了大量参考文献,确保设计依据的科学性和权威性。阅读本文有助于读者深入了解汽车起重机液压系统的设计原理和实现方法,为实际工程应用提供有力支持。
Unity Beautify 3 - Advanced Post Processing 23.0版本
基于数据包络分析的中国旅游业发展效率特征
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于蓝牙技术的多通道键盘 ## 项目简介 在多设备工作环境中,用户常常需要在家庭电脑、工作笔记本或平板电脑之间频繁切换键盘输入,这不仅占用了大量桌面空间,而且操作不便。本项目旨在通过蓝牙技术,设计一款能够同时连接多个设备并实现一键切换的多通道键盘,从而简化用户的操作流程,提高工作效率。 ## 项目的主要特性和功能 1. 多设备连接键盘可以同时连接多达三个不同的设备。 2. 一键切换通过按键即可快速切换输入目标设备。 3. 高性能微控制器采用ATMega32u4微控制器,提供足够的GPIO引脚,支持Arduino编程环境,便于固件开发和升级。 4. 蓝牙模块使用RN42蓝牙模块,确保稳定的设备连接和数据传输。 5. 电压调节器使用MIC4680电压调节器,确保系统稳定供电。 ## 安装使用步骤 1. 硬件准备 获取ATMega32u4微控制器、RN42蓝牙模块、MIC4680电压调节器等硬件组件。 2. 电路设计
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
基于Vue.js和SpringBoot的研究生调研管理系统.zip
地理信息文件,许昌市各县区政区图,shp格式,可编辑
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Scratch放飞气球 2024年9月电子学会scratch三级考试真题源代码 综合考查角色添加、背景添加、初始位置、移动步数、方向旋转、造型切换、左右翻转、碰到边缘反弹、无限循环、条件判断、鼠标控制、碰撞检测等积木的使用;难点在于: 如何实现蝙蝠不断移动 如何实现蝙蝠边移动边挥翅膀 如何实现Ripley跟随鼠标移动 如何实现蝙蝠碰到Ripley移到随机位置 充分掌握重复执行和碰撞检测积木的使用 详细解题思路和步骤可以查看博客: https://scratch.blog.csdn.net/article/details/142934767 小兔子编程给小朋友们分享各种少儿编程(Scratch编程、python编程、C++编程等)学习、考级和比赛相关资料;更多少儿编程相关的学习资料,可以访问博主博客 https://blog.csdn.net/frank2102 期待小朋友们相互交流学习,有什么问题,建议或者意见可以直接给博主留言,或者私下,博主看到后会第一时间给到您相应的回复
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
前端分析-2023071100789s102102
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
风玫瑰图的数据包,直接导入即可
# 基于PHP框架的新闻发布系统 ## 项目简介 这是一个基于PHP框架的新闻发布系统,借助PHP和MySQL数据库实现新闻的创建、查看、编辑与删除功能。系统包含前台新闻展示页和后台管理页,管理员可进行新闻的添加、编辑和删除操作,用户则能浏览新闻。 ## 项目的主要特性和功能 1. 采用PHP和MySQL数据库存储与管理新闻数据。 2. 提供用户友好界面,方便用户浏览新闻。 3. 管理员可登录后台管理页对新闻进行添加、编辑和删除操作。 4. 新闻列表页动态生成新闻列表,依据后台数据库数据显示。 5. 新闻详情页展示新闻详细内容,涵盖标题、内容和发布时间。 6. 后台管理页具备新闻管理基本功能,如添加、编辑和删除新闻。 7. 运用MVC(Model View Controller)架构,分离数据和业务逻辑与表示层,提升代码可维护性和可扩展性。 ## 安装使用步骤 1. 下载并解压项目文件。
内容概要:本文档提供了一个完整的LaTeX报告模板,用于复现MATLAB元素级运算实验。文档详细介绍了如何使用LaTeX编写报告,包括文档结构设置、标题生成、IMRAD(引言、方法、结果、分析和讨论)各部分内容的编写方法。在方法部分,重点展示了MATLAB中元素级运算的符号(如.*、./、.\^),并用数学公式解释了元素级乘法的运算规则。结果部分通过插入图形展示了使用元素级运算绘制的二次函数图像,分析部分则通过表格对比了不同元素级运算的结果。最后,讨论部分总结了元素级运算的特点及其在MATLAB编程中的重要性,并展望了其在图像和信号处理中的应用前景。; 适合人群:对LaTeX排版和MATLAB编程有一定了解的学生、教师以及科研工作者。; 使用场景及目标:①学习如何使用LaTeX撰写科学报告,掌握LaTeX的基本语法和常用包的使用;②理解MATLAB中元素级运算的原理及其与常规矩阵运算的区别;③通过实际操作MATLAB代码生成图形,加深对元素级运算的理解。; 阅读建议:读者应按照文档的指导逐步实践,先安装所需的LaTeX编译环境和MATLAB软件,再根据提供的MATLAB代码生成所需图形,最后将图形文件插入LaTeX文档中编译生成最终的PDF报告。在整个过程中,建议仔细阅读每一段代码和解释,确保理解每一部分的功能和目的。