35 lines
775 B
Go
35 lines
775 B
Go
package imapclient
|
|
|
|
import (
|
|
"context"
|
|
|
|
"email-mcp/internal/secretstore"
|
|
)
|
|
|
|
type Mailbox struct {
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type MessageSummary struct {
|
|
UID uint32 `json:"uid"`
|
|
Subject string `json:"subject"`
|
|
From string `json:"from"`
|
|
}
|
|
|
|
type Header struct {
|
|
Name string `json:"name"`
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
type Message struct {
|
|
UID uint32 `json:"uid"`
|
|
Mailbox string `json:"mailbox"`
|
|
Headers []Header `json:"headers"`
|
|
Body string `json:"body"`
|
|
}
|
|
|
|
type Backend interface {
|
|
ListMailboxes(context.Context, secretstore.Credential) ([]Mailbox, error)
|
|
ListMessages(context.Context, secretstore.Credential, string, int) ([]MessageSummary, error)
|
|
GetMessage(context.Context, secretstore.Credential, string, uint32) (Message, error)
|
|
}
|