[Go] golang使用github里的imap类库

1.在windows系统下,需要首先定义两个环境变量GOPATH和GOROOT, GOPATH是第三方类库的代码目录 , GOROOT是go的安装目录

 

 

2.按照我的定义 , 进入这个目录D:\golang\code\src\github.com\emersion , 使用git 更新代码

git clone https://github.com/emersion/go-imap.git
git clone https://github.com/emersion/go-sasl.git

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main
 
import (
    "github.com/emersion/go-imap"
    "github.com/emersion/go-imap/client"
    "log"
)
 
const (
    server   = "imap.sina.net:993"
    username = "shihan@sopans.com"
    password = "xxxx"
)
 
func main() {
    var c *client.Client
    var err error
    log.Println("Connecting to server...")
    c, err = client.DialTLS(server, nil)
    //连接失败报错
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Connected")
    //登陆
    if err := c.Login(username, password); err != nil {
        log.Fatal(err)
    }
    log.Println("Logged in")
    mailboxes := make(chan *imap.MailboxInfo, 20)
    go func() {
        c.List("", "*", mailboxes)
    }()
    //列取邮件夹
    for m := range mailboxes {
 
        mbox, err := c.Select(m.Name, false)
        if err != nil {
            log.Fatal(err)
        }
        to := mbox.Messages
        log.Printf("%s : %d", m.Name, to)
    }
}

  

 

posted @   唯一客服系统开发笔记  阅读(2225)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2016-02-26 [android] 帧布局
2016-02-26 [android] 表格布局和绝对布局
点击右上角即可分享
微信分享提示
1
chat with us