鏈接上imap服務後,什麼都不操做,我測試大約5分鐘會被服務端斷掉,測試代碼以下git
imapClient, _ := client.Dial("imap.sina.net:143") for { time.Sleep(time.Second * 1) }
爲了保持住這條鏈接,每隔10秒列取一下郵件夾列表,這樣就能夠一直保持住鏈接了。開三個窗口,一個窗口不停的netstat查看tcp鏈接狀況,一個窗口運行代碼,一個窗口打開tcpdump監聽端口查看數據請求github
while true;do clear;date;netstat -altupn|grep 143;sleep 1;donetcp
tcpdump -i enp0s25 port 143 -vv測試
能夠看到每隔10秒會有數據傳輸spa
完整測試代碼.net
package main import ( "fmt" "time" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) func main() { imapClient, _ := client.Dial("imap.sina.net:143") err := imapClient.Login("shihan2@sopans.com", "密碼") fmt.Println(err) for { time.Sleep(time.Second * 10) mailboxes := make(chan *imap.MailboxInfo, 20) go func() { imapClient.List("", "*", mailboxes) }() } }