Ho recuperato con successo un elenco di intestazioni di posta elettronica utilizzando il codice di esempio da questo URL: https://godoc.org/code.google.com/p/go-imap/go1/imap#example-Client. Tuttavia, non sono ancora riuscito a recuperare il corpo delle email. Qualcuno può mostrare qualche codice di esempio funzionante che può recuperare il corpo delle e-mail da un server imap in Golang?Come recuperare il corpo dal server imap in Go
5
A
risposta
3
Ho capito come ottenere il corpo del testo ora.
cmd, _ = c.UIDFetch(set, "RFC822.HEADER", "RFC822.TEXT")
// Process responses while the command is running
fmt.Println("\nMost recent messages:")
for cmd.InProgress() {
// Wait for the next response (no timeout)
c.Recv(-1)
// Process command data
for _, rsp = range cmd.Data {
header := imap.AsBytes(rsp.MessageInfo().Attrs["RFC822.HEADER"])
uid := imap.AsNumber((rsp.MessageInfo().Attrs["UID"]))
body := imap.AsBytes(rsp.MessageInfo().Attrs["RFC822.TEXT"])
if msg, _ := mail.ReadMessage(bytes.NewReader(header)); msg != nil {
fmt.Println("|--", msg.Header.Get("Subject"))
fmt.Println("UID: ", uid)
fmt.Println(string(body))
}
}
cmd.Data = nil
c.Data = nil
}
1
Il codice di esempio che è stato collegato per dimostrare l'utilizzo del comando IMAP FETCH
per recuperare l'elemento di dati del messaggio RFC822.HEADER
per un messaggio. La RFC contains a list of standard data items you can fetch from a message.
Se si desidera l'intero messaggio formattato in mime (intestazioni e corpo), è necessario richiedere BODY
. È possibile ottenere le intestazioni e il corpo del messaggio separatamente richiedendo rispettivamente BODY[HEADER]
e BODY[TEXT]
. La modifica del programma di esempio per utilizzare uno di questi elementi di dati dovrebbe ottenere i dati che si stanno cercando.
Grazie James. Ora sto leggendo la RFC 3501 per acquisire maggiori conoscenze sul protocollo IMAP. Sto ancora lottando per far funzionare l'API Go per recuperare il corpo. Puoi per favore mostrarmi qualche esempio di codice funzionante che recuperi il corpo delle mail. Grazie. –