2015-01-06 15 views

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.

+0

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. –

Problemi correlati