go-imap保持长连接
例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main
import (
"fmt"
"github.com/emersion/go-imap"
"github.com/emersion/go-imap/client"
"time"
)
func main() {
imapClient, _ := client.Dial("imap.exmail.qq.com:993")
err := imapClient.Login("fsbook@fscloude.cn", "8gGNCGBQr8EFGZoc")
fmt.Println(err)
for {
time.Sleep(time.Second * 10)
mailboxes := make(chan *imap.MailboxInfo, 20)
go func() {
imapClient.List("", "*", mailboxes)
}()
}
}
安装go-imap模块遇到的问题
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
问题:
no required module provides package : go.mod file not found in current directory or any parent
意思是: 找不到导入模块的包
尝试1:
go get -u github.com/emersion/go-imap
尝试2:
网上基本都是这个解决方案:执行:go env -w GO111MODULE=auto
但是我的已经打开了,所以排除这个解决方案
尝试3:
go mod init 新模块名字
提示:
[root@edm-proxy-slb script]# go mod init go-imap
go: creating new go.mod: module go-imap
go: to add module requirements and sums:
go mod tidy
执行: go mod tidy
go: finding module for package github.com/emersion/go-imap
go: finding module for package github.com/emersion/go-imap/backend/memory
go: finding module for package github.com/emersion/go-imap/client
go: finding module for package github.com/emersion/go-imap/server
go: found github.com/emersion/go-imap in github.com/emersion/go-imap v1.2.1
go: found github.com/emersion/go-imap/backend/memory in github.com/emersion/go-imap v1.2.1
go: found github.com/emersion/go-imap/client in github.com/emersion/go-imap v1.2.1
go: found github.com/emersion/go-imap/server in github.com/emersion/go-imap v1.2.1
go: downloading github.com/emersion/go-message v0.15.0
go: downloading github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594
并在当前目录生成两个个文件: go.mod、go.sum
go.mod 内容如下:
module go-imap
go 1.19
require github.com/emersion/go-imap v1.2.1
require (
github.com/emersion/go-message v0.15.0 // indirect
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 // indirect
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect
golang.org/x/text v0.3.7 // indirect
)
go.sum 内容如下:
github.com/emersion/go-imap v1.2.1 h1:+s9ZjMEjOB8NzZMVTM3cCenz2JrQIGGo5j1df19WjTA=
github.com/emersion/go-imap v1.2.1/go.mod h1:Qlx1FSx2FTxjnjWpIlVNEuX+ylerZQNFE5NsmKFSejY=
github.com/emersion/go-message v0.15.0 h1:urgKGqt2JAc9NFJcgncQcohHdiYb803YTH9OQwHBHIY=
github.com/emersion/go-message v0.15.0/go.mod h1:wQUEfE+38+7EW8p8aZ96ptg6bAb1iwdgej19uXASlE4=
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 h1:OJyUGMJTzHTd1XQp98QTaHernxMYzRaOasRir9hUlFQ=
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 h1:IbFBtwoTQyw0fIM5xv1HF+Y+3ZijDR839WMulgxCcUY=
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
之后 go run go-imap.go 执行成功
本文由作者按照
CC BY 4.0
进行授权