Installation
Un module, Go 1.24 et versions suivantes, et rien en dehors de la bibliothèque standard.
Installation
La version actuelle est 0.0.1. Elle a une méthode pour chaque méthode du SDK TypeScript, et le contrôle de parité du module fait échouer la compilation quand il en manque une ou qu'elle envoie une requête différente.
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() lit la clé dans OPENEMAIL_API_KEY : le code ne contient donc aucun identifiant. Passez openemail.WithAPIKey quand votre configuration se trouve ailleurs. New n'échoue jamais : une clé absente ou mal formée est signalée par client.Err() et par le premier appel.
Un corps de requête est un openemail.Body, une map[string]any dont les clés gardent les noms de l'API, si bien que scheduledAt s'écrit ici comme dans la référence de l'API. Une réponse est un openemail.Object, le JSON décodé avec des lecteurs comme ID, String, Int, Bool, Time et Object.
Le retour de Send ne signifie pas que le message est parti. Un envoi planifié ou annulable revient en queued ou scheduled et se règle plus tard. Lisez status, pas le fait que l'appel a retourné.
Où il s'exécute
Go 1.24 et versions suivantes, sur toutes les plateformes pour lesquelles Go compile. Les requêtes passent par net/http : les connexions sont donc réutilisées et HTTPS_PROXY est respecté. Un client peut être utilisé par plusieurs goroutines à la fois : créez-en un au démarrage du programme et partagez-le.
Le client porte une clé d'API d'espace de travail capable d'envoyer du courrier et de lire la boîte : sa place est donc sur un serveur, dans un job ou dans un outil qui s'exécute sur votre propre machine. Conservez la clé dans une variable d'environnement ou dans les secrets de votre framework, jamais dans le code.