連接上imap服務後,什麼都不操作,我測試大約5分鐘會被服務端斷掉,測試代碼如下 為了保持住這條連接,每隔10秒列取一下郵件夾列表,這樣就可以一直保持住連接了。開三個視窗,一個視窗不停的netstat查看tcp連接情況,一個視窗運行代碼,一個視窗打開tcpdump監聽埠查看數據請求 while t ...
連接上imap服務後,什麼都不操作,我測試大約5分鐘會被服務端斷掉,測試代碼如下
imapClient, _ := client.Dial("imap.sina.net:143") for { time.Sleep(time.Second * 1) }
為了保持住這條連接,每隔10秒列取一下郵件夾列表,這樣就可以一直保持住連接了。開三個視窗,一個視窗不停的netstat查看tcp連接情況,一個視窗運行代碼,一個視窗打開tcpdump監聽埠查看數據請求
while true;do clear;date;netstat -altupn|grep 143;sleep 1;done
tcpdump -i enp0s25 port 143 -vv
可以看到每隔10秒會有數據傳輸
完整測試代碼
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("[email protected]", "密碼") fmt.Println(err) for { time.Sleep(time.Second * 10) mailboxes := make(chan *imap.MailboxInfo, 20) go func() { imapClient.List("", "*", mailboxes) }() } }