1.electron-vue是利用Chromium浏览器、vue-cli脚手架和nodejs来实现跨平台的桌面应用程序
    使用electron-packager或electron-builder打包应用程序,electron-packager打包方式比较简单,想为哪个平台打包,
    执行相应命令即可;electron-builder,自动化部署,持续集成,只要监测github上绑定的代码仓库发生了变化,即可打包发布。

2.读取邮件的方式

smtp协议:是一种基于文本的电子邮件传输协议,只能用于邮件服务器之间交换邮件。
    pop3协议:允许电子邮件客户端下载服务器上的邮件,但不是一个同步的操作,它只是下载了服务器邮件的一个副本,因此服务器上邮件有其他操作时,不会同步到客户端。
    imap协议:与pop3协议类似,都允许客户端来下载,但它是一个同步的过程,服务器端有了更改,同时客户端也会有相应的改变。
   smtp用来发送邮件,pop3和imap都用来接收邮件

3.接收邮件 --- node-imap是一个 node.js版本的IMAP客户端模块

详情请查看网址:http://www.8dou5che.com/2018/03/23/node-imap/

4.解析邮件的编码方式:

(1)、iconv-lite实现编码的转换,因为node只支持utf-8,没有提供原生转码的方式,故必须利用该模块,
           转换为GBK编码
 (2)、content-type的分类:
       i、text,主要有text/html和text/plain,内容需要用Content-Transfer-Encoding解码,常见传输编码为base64和quoted-printable
       ii、multipart,又分为mixed、alternative和related。
             mixed是有附件的类型
             alternative是纯文本和超文本同时存在的类型
             related是资源内嵌类型,如内容为html,但html里有图片,把图片提取出来以附件形式发送

因为multipart这种形式比较复杂,因此要利用boundary分割符,将邮件体分割成不同段来进行解析,boundary分为父段和子段,父段一般出现0次或1次,出现在末尾,每个子段中也有content-type和boundary,需要在进行解析,如果遇到i,iii里面的情况可直接解析,如果遇到ii中的情况,再按ii中的步骤进行解析
        iii、image、application,一般是出现在附件中的格式
    (3)、quoted-printable可译为"可打印字符引用编码",其编码方法为:
          i、任何一个8位的字节值都可以编码为3个字符:=后跟随两个十六进制数字(0-9或A-F)
          ii、所有可打印ASCII字符(十进制范围为33到126)都可用ASCII字符编码来直接表示,但'='只能表示为'=3D'
          iii、tab与空格符的十进制为9和32,如果不出现在行尾则可以用其ASCII编码直接表示,如果这两个字符出现在行尾,则必须按照QP的编码要求,表示为'=09'和'=20'
          iv、QP的编码数据每行长度不能超过76个字符,因此在每行末尾加上一个'='表示结束
     (4)、base64编码方式:
         i、base64利用64个可打印字符来表示二进制数据(A-Za-z0-9+/)
         ii、将索引转换为对应的二进制数据需要6个bit,而ASCII码需要8个bit来表示,但是4*6个bit可以存储3*8个bit,将其转换为对应的6个bit
         iii、在6个bit的高位补0,变成8个bit,转换成对应的base64字符
         iv、如果不是对应的倍数时,就用0补齐,变成8个bit,表示成对应的base64编码,如果8个bit都为0则表示为=

5.发送邮件 --- nodemailer

详情请查看网址:https://segmentfault.com/a/1190000011045384

6.注意事项

在登录时必须在邮箱中开启pop3或imap服务,使用授权码登录,而不是使用你的邮箱密码登录

使用qq邮箱时直接使用授权码登录即可,但是用网易邮箱有限制。使用网易邮箱登录第三方客户端时,由于网易邮箱的限制,无法登录第三方客户端,只能使用如下网址:http://config.mail.163.com/settings/imap/login.jsp?uid=lw140912@163.com,且使用该网址时要先先注册一个带字母的163邮箱,不能使用手机号注册的163邮箱,否则该网站对这个邮箱不识别

利用electron-vue技术实现一个邮箱客户端应用的项目总结相关推荐

  1. 利用CUTFTP Tranfer Engine开发.NET FTP客户端

    为了解决大文件上传的问题,我曾经也用过XMLHTTP分块,但是感觉还是不够好. 利用FTP的话就会方便服务器文件的管理. 首先安装一个CUTFTP软件,安装好以后,安装的文件夹中会有一个ftpte.e ...

  2. 我的邮箱客户端程序Popmail

    05年的时候写了一个邮箱客户端程序.当时主要目的是研究POP3和SMTP协议,同时锻炼自己的网络编程能力.当然了,如果自己写的邮箱客户端能够满足自身的日常工作需要,而不是频繁的登录不同的网页邮箱,那就 ...

  3. TCP:利用Socket编程技术实现客户端向服务端上传一个图片。

    问题: 利用Socket编程技术实现客户端向服务端上传一个图片的程序. 客户端: import java.io.*; import java.net.Socket;public class clien ...

  4. 简单好用!利用Spring AOP技术10分钟实现一个数据库读写分离方案

    前言 最近我们的APP在线用户越来越多,接口的响应速度也是越来越慢,经过运维排查发现是由于并发查询太多导致的数据库压力比较大,架构师经过调研给出了数据库读写分离的解决方案,为了快速解决问题,我们最终采 ...

  5. Web开发了一个完整精美的聊天室(登录部分引入了Vue技术)

    前端JavaScript  HTML CSS 为了减小JavaScript动态操作节点的开支消耗,引入了Vue技术 数据库 MySQL 保存聊天信息.用户名.用户密码.采用JDBC编程 后端 serv ...

  6. 如何利用Vue快速创建一个在线电子表格

    集成API 在上一节中,我们用Vue实现了一个简单的TODO应用.通过对Model的更新,DOM结构可以同步更新. 现在,如果要把这个简单的TODO应用变成一个用户能使用的Web应用,我们需要解决几个 ...

  7. GitHub 开源跨平台神器 Electron 实践 | 技术头条

    作者 | 李小明 责编 | 屠敏 认识 Electron Electron是由GitHub开发,用HTML.CSS 和 JavaScript来构建跨平台桌面应用程序的一个开源库.Electron通过将 ...

  8. android仿微信图片编辑器,electron/vue可编辑框contenteditable|仿微信截图

    基于Electron+vue实现div可编辑contenteditable插入表情|electron-vue截图功能 为了避免使用 vue 手动建立起 electron 应用程序.electron-v ...

  9. 利用数据存储技术实现数据安全合理备份

    企业目前的日常工作越来越依靠信息系统的支撑.各类系统中保存着企业大量的业务数据,这些数据成为企业经营决策的客观依据,是企业成长发展的宝贵资源raid数据恢复.一旦数据在传输.存储.交换等过程中丢失,便 ...

最新文章

  1. linux c不占用cpu的延时,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  2. 在SQL中使用convert函数进行日期的查询
  3. 忘记mysql登录密码怎么办
  4. 笔记-计算机网络基础-TCP/IP vs OSI
  5. 物理化学 化学 动力学(上)
  6. mysql协议重传_TCP协议详解
  7. HDOJ 1298 T9(trie树简单应用)
  8. (35)System Verilog类静态变量详解
  9. android netty导入_Netty在Android中使用
  10. HDU2050 折线分割平面【切割平面】
  11. Html学习手册(W3CSchool.chm)
  12. 升讯威周报与工时统计系统 V3
  13. Hyperchain 超块链创始人史兴国对谈杨民道:新公链赛道烽烟再起,move语言能开启下一轮牛市吗?
  14. 一键实现证件照背景的替换,Python 制作可视化GUI界面真香啊
  15. Comic Life 3 for Mac(漫画创作软件)内附安装教程需要 macOS 11.x系统
  16. linux mint 安装ubuntu软件中心,Ubuntu和Linux Mint:安装Pinta 1.6工具
  17. 新手如何看k线(图)
  18. onnx优化系列 - 获取中间Node的inference shape的方法
  19. 百度李彦宏遭现场泼水,百度不再是百度,百度依然是百度
  20. torch.cat 关于 dim=0,dim=1 测试

热门文章

  1. 量子计算机原理以及量子算法
  2. auth认证相关 --token 深入了解
  3. SN74LS148优先编码器的级联使用
  4. Echarts实现省级地图的两种方法(以浙江省为例)
  5. VBA宏批量处理多个Word文档
  6. JVM元数据空间增长分析
  7. 出现make: *** No rule to make target `all'. Stop.解决办法
  8. 【重磅推荐】哥大开源“FinRL”: 一个用于量化金融自动交易的深度强化学习库
  9. 青龙羊毛——酷狗滴滴
  10. [OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中-es6-Object.defineProperty()定义属性...