Installation
Ein Modul, Go 1.24 und neuer, und nichts außerhalb der Standardbibliothek.
Installation
Die aktuelle Version ist 0.0.1. Sie hat eine Methode für jede Methode des TypeScript-SDK, und die Paritätsprüfung des Moduls lässt den Build scheitern, wenn eine fehlt oder eine andere Anfrage sendet.
go get github.com/bfzli/openemail-gopackage main import ( "context" "fmt" "log" "github.com/bfzli/openemail-go") func main() { client := openemail.New() email, err := client.Emails.Send(context.Background(), openemail.Body{ "from": "Acme Billing <[email protected]>", "to": "[email protected]", "subject": "Your September invoice", "html": "<p>Invoice attached.</p>", }) if err != nil { log.Fatal(err) } fmt.Println(email.ID(), email.String("status"))}openemail.New() liest den Schlüssel aus OPENEMAIL_API_KEY, sodass der Code keine Zugangsdaten enthält. Übergeben Sie openemail.WithAPIKey, wenn Ihre Konfiguration woanders liegt. New schlägt nie fehl: Einen fehlenden oder fehlerhaften Schlüssel melden client.Err() und der erste Aufruf.
Ein Anfragekörper ist ein openemail.Body, eine map[string]any, deren Schlüssel die Namen der API behalten, sodass scheduledAt hier genauso geschrieben wird wie in der API-Referenz. Eine Antwort ist ein openemail.Object, das dekodierte JSON mit Lesemethoden wie ID, String, Int, Bool, Time und Object.
Dass Send zurückkehrt, heißt nicht, dass die Nachricht verschickt ist. Ein geplanter oder abbrechbarer Versand kommt als queued oder scheduled zurück und steht erst später fest. Lesen Sie status, nicht die Tatsache, dass der Aufruf zurückgekehrt ist.
Wo es läuft
Go 1.24 und neuer, auf jeder Plattform, für die Go baut. Anfragen laufen über net/http, Verbindungen werden also wiederverwendet und HTTPS_PROXY wird beachtet. Ein Client kann von mehreren Goroutinen gleichzeitig benutzt werden: Erstellen Sie einen beim Programmstart und teilen Sie ihn.
Der Client trägt einen Workspace-API-Schlüssel, der Mail senden und das Postfach lesen kann. Er gehört daher auf einen Server, in einen Job oder in ein Tool, das auf Ihrem eigenen Rechner läuft. Bewahren Sie den Schlüssel in einer Umgebungsvariable oder in den Secrets Ihres Frameworks auf, nie im Code.