如何使用 GO 使用 IMAP 在 Gmail 中创建草稿

我想使用 GO 创建一条新消息(特别是草稿),该消息存储在我的收件箱中,所有内容都准备好在以后点击发送。我认为使用 SMTP 是行不通的。使用 IMAP 也许我可以。我该怎么做?



四季花海
浏览 155回答 1
1回答

慕运维8079593

package mainimport (&nbsp; &nbsp; "bytes"&nbsp; &nbsp; "log"&nbsp; &nbsp; "os"&nbsp; &nbsp; "time"&nbsp; &nbsp; "github.com/emersion/go-imap"&nbsp; &nbsp; "github.com/emersion/go-imap/client")func main() {&nbsp; &nbsp; log.Println("Connecting to server...")&nbsp; &nbsp; // Connect to server&nbsp; &nbsp; c, err := client.DialTLS(os.Getenv("IMAP_SERVER"), nil)&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; log.Fatal(err)&nbsp; &nbsp; }&nbsp; &nbsp; log.Println("Connected")&nbsp; &nbsp; // Don't forget to logout&nbsp; &nbsp; defer c.Logout()&nbsp; &nbsp; // Login&nbsp; &nbsp; if err := c.Login(os.Getenv("IMAP_USER"), os.Getenv("IMAP_PASSWORD")); err != nil {&nbsp; &nbsp; &nbsp; &nbsp; log.Fatal(err)&nbsp; &nbsp; }&nbsp; &nbsp; log.Println("Logged in")&nbsp; &nbsp; // Write the message to a buffer&nbsp; &nbsp; var b bytes.Buffer&nbsp; &nbsp; b.WriteString("From: <...@gmail.com>\r\n")&nbsp; &nbsp; b.WriteString("To: <...@gmail.com>\r\n")&nbsp; &nbsp; b.WriteString("Subject: Append test\r\n")&nbsp; &nbsp; b.WriteString("\r\n")&nbsp; &nbsp; // Message body&nbsp; &nbsp; b.WriteString("Append test using Gmail IMAP and Draft folder")&nbsp; &nbsp; // Append it to Drafts&nbsp; &nbsp; if err := c.Append("[Gmail]/Drafts", nil, time.Now(), &b); err != nil {&nbsp; &nbsp; &nbsp; &nbsp; log.Fatal(err)&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go