ドキュメント本文へスキップ
Go

インストール

1 つのモジュール、Go 1.24 以降、標準ライブラリ以外は不要です。

インストール

現在のリリースは 0.0.1 です。TypeScript SDK のすべてのメソッドに対応するメソッドがあり、どれかが欠けたり異なるリクエストを送ったりすると、モジュールのパリティチェックがビルドを失敗させます。

go get github.com/bfzli/openemail-go
main.go
package 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() はキーを OPENEMAIL_API_KEY から読むため、コードには資格情報が残りません。設定を別の場所で管理している場合は openemail.WithAPIKey を渡してください。New は失敗しません。キーがない場合や形式が正しくない場合は、client.Err() と最初の呼び出しが報告します。

リクエストボディは openemail.Body、つまり API の名前をそのままキーにした map[string]any です。そのため scheduledAt は API リファレンスと同じように書きます。レスポンスは openemail.Object で、デコードされた JSON に ID、String、Int、Bool、Time、Object などの読み取りメソッドが付いています。

Send が戻っても、メッセージが送信済みとは限りません。スケジュール送信やキャンセル可能な送信は queued または scheduled として返り、後から確定します。呼び出しが戻ったという事実ではなく、status を読んでください。

動作環境

Go 1.24 以降、Go がビルドできるすべてのプラットフォームで動きます。リクエストは net/http を通るため、接続は再利用され、HTTPS_PROXY も尊重されます。クライアントは複数のゴルーチンから同時に安全に使えます。プログラムの起動時に 1 つ作り、共有してください。

クライアントはメールを送信しメールボックスを読み取れるワークスペース API キーを保持するため、置き場所はサーバー、ジョブ、または自分のマシンで動くツールです。キーは環境変数かフレームワークのシークレットに保管し、決してコードに書かないでください。