组件分享之后端组件——用Go编写的IMAP4rev1库go-imap

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:go-imap
  • 开源协议:MIT license

内容

本节我们分享一个用Go编写的IMAP4rev1库go-imap。它可以用来构建客户机和/或服务器。

客户端案例如下:

package mainimport ("log""github.com/emersion/go-imap/client""github.com/emersion/go-imap"
)func main() {log.Println("Connecting to server...")// Connect to serverc, err := client.DialTLS("mail.example.org:993", nil)if err != nil {log.Fatal(err)}log.Println("Connected")// Don't forget to logoutdefer c.Logout()// Loginif err := c.Login("username", "password"); err != nil {log.Fatal(err)}log.Println("Logged in")// List mailboxesmailboxes := make(chan *imap.MailboxInfo, 10)done := make(chan error, 1)go func () {done <- c.List("", "*", mailboxes)}()log.Println("Mailboxes:")for m := range mailboxes {log.Println("* " + m.Name)}if err := <-done; err != nil {log.Fatal(err)}// Select INBOXmbox, err := c.Select("INBOX", false)if err != nil {log.Fatal(err)}log.Println("Flags for INBOX:", mbox.Flags)// Get the last 4 messagesfrom := uint32(1)to := mbox.Messagesif mbox.Messages > 3 {// We're using unsigned integers here, only subtract if the result is > 0from = mbox.Messages - 3}seqset := new(imap.SeqSet)seqset.AddRange(from, to)messages := make(chan *imap.Message, 10)done = make(chan error, 1)go func() {done <- c.Fetch(seqset, []imap.FetchItem{imap.FetchEnvelope}, messages)}()log.Println("Last 4 messages:")for msg := range messages {log.Println("* " + msg.Envelope.Subject)}if err := <-done; err != nil {log.Fatal(err)}log.Println("Done!")
}

服务端案例如下:

package mainimport ("log""github.com/emersion/go-imap/server""github.com/emersion/go-imap/backend/memory"
)func main() {// Create a memory backendbe := memory.New()// Create a new servers := server.New(be)s.Addr = ":1143"// Since we will use this server for testing only, we can allow plain text// authentication over unencrypted connectionss.AllowInsecureAuth = truelog.Println("Starting IMAP server at localhost:1143")if err := s.ListenAndServe(); err != nil {log.Fatal(err)}
}

go-imap 本身包含对多个 IMAP 扩展的支持。这包括:

  • APPENDLIMIT
  • CHILDREN
  • ENABLE
  • IDLE
  • IMPORTANT
  • LITERAL+
  • MOVE
  • SASL-IR
  • SPECIAL-USE
  • UNSELECT

更多内容可以参考其官方提供的README

本文声明:
88x31.png

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。


http://www.taodudu.cc/news/show-2511391.html

相关文章:

  • 07-11-Exchange Server 2019-配置-Outlook 2019-IMAP4
  • imap能和服务器同步文件夹吗,IMAP 同步
  • python邮件处理(1)-IMAP收取邮件
  • Exchange2013中POP3和IMAP4
  • outlook显示imap服务器已关闭,允许 Outlook Web App 中的最终用户查看 POP3、IMAP4 和 SMTP 服务器设置...
  • 禁用电子邮件服务器,启用或禁用对邮箱中的邮箱的 POP3 或 IMAP4 Exchange Server
  • Exch:POP3 和 IMAP4 操作指南
  • 理解概念IMAP4、IMAP4rev1 client protocol、POP3、SMTP、MIME、RFC822
  • IMAP4 读取收件箱的问题
  • python IMAP4命令详解
  • IMAP4
  • IMAP4协议
  • IMAP4命令详解
  • 电子邮件协议:SMTP、POP3、IMAP4
  • IMAP4协议介绍nbsp;工作原理
  • Qt编写邮件客户端IMAP4(一)收取邮件
  • python爬虫之Scrapy CrawlSpider说明——以阳光平台为例
  • 爬虫基础知识+Scrapy框架
  • Python中的爬虫
  • Scrapy爬虫框架的原理与实战[阳光政务爬虫项目]
  • scrapy框架之spider
  • Scrapy框架基础了解
  • Python爬虫之scrapy分布式爬虫
  • Scrapy框架之传智项目整理
  • 爬虫技术:scrapy 知识点一
  • item的介绍与使用-2.0
  • Python爬虫 9-Scrapy框架初探
  • python之Srcapy框架浅谈
  • 分布式的Scrapy过于能打!十个resquests都顶不住! ๑乛◡乛๑ Scrapy框架使用方法
  • scrapy settings和管道的深入

组件分享之后端组件——用Go编写的IMAP4rev1库go-imap相关推荐

  1. 组件分享之后端组件——基于Golang语言的游戏服务器框架leaf

    组件分享之后端组件--基于Golang语言的游戏服务器框架leaf 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类 ...

  2. 组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack

    组件分享之后端组件--用于将日志写入滚动文件的组件包lumberjack 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包 ...

  3. 组件分享之后端组件——国际化组件go-i18n

    组件分享之后端组件--国际化组件go-i18n 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件 ...

  4. 组件分享之后端组件——阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos...

    组件分享之后端组件--阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件 ...

  5. 组件分享之后端组件——一个简单且高度可扩展的分布式文件系统seaweedfs

    组件分享之后端组件--一个简单且高度可扩展的分布式文件系统seaweedfs 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题 ...

  6. 组件分享之后端组件——基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq...

    组件分享之后端组件--基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成 ...

  7. 组件分享之后端组件——Redis数据库的一个Go客户端redigo

    组件分享之后端组件--Redis数据库的一个Go客户端redigo 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类 ...

  8. 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr

    组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...

  9. 组件分享之后端组件——基于Golang实现的基于LDAP V3协议的操作包ldap

    组件分享之后端组件--基于Golang实现的基于LDAP V3协议的操作包ldap 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续 ...

  10. 组件分享之前端组件——用于自定义表单的前端组件form-create

    组件分享之前端组件--用于自定义表单的前端组件form-create 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各 ...

最新文章

  1. 提问与回答:全国大学生智能汽车竞赛的第十五届的7月中旬问答
  2. python安装没有pip选项_python-3.x – 在ubuntu上没有pip的python安装
  3. 推荐 7 个 Vue2、Vue3 源码解密分析的开源项目
  4. java执行shell命令
  5. OrCAD分裂元件的使用方法
  6. .NET Framework 4.8预览
  7. 几种开源NOSQL数据库
  8. JavaScript字符集编码与解码
  9. iOS重写和成员变量访问权限
  10. 三十万,买一只基金,放着不管,五年后会怎么样?
  11. 121 项目 008 笔记向 maven-study 常用插件
  12. iOS -[JYBDScanCardManage configIDScan] in JYBDScanCardManage.o等静态库问题
  13. 前端 encodeURI 为什么要编码两次
  14. 酷派D530刷机指引之民间ROM
  15. json数据循环左侧三级导航菜单
  16. 基于CList链表类的故障树分析算法的实现
  17. 多级父子关系数据库设计
  18. oracle 定时 analyze,Oracle工具:Analyze
  19. 服务端Skynet(五)——如何搭建一个实例
  20. linux添加javahome

热门文章

  1. 微服务实践(总)-原文
  2. 【C语言】判断数字是否为素数或合数
  3. java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
  4. opencv: 颜色通道 探究(图示+源码)
  5. 记录下selenium登陆126邮箱
  6. 牛牛游戏牛型判断算法实现
  7. 可编程的,协议独立的软件交换机(论文阅读)
  8. Linux efi分区被删除了,如何恢复意外删掉的EFI系统分区
  9. java 时分秒转毫秒_运行时间(Java版本)—转换毫秒到时分秒日期
  10. 常见的web网站攻击类型