インストール
1 つのモジュール、Go 1.24 以降、標準ライブラリ以外は不要です。
インストール
現在のリリースは 0.0.1 です。TypeScript SDK のすべてのメソッドに対応するメソッドがあり、どれかが欠けたり異なるリクエストを送ったりすると、モジュールのパリティチェックがビルドを失敗させます。
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() はキーを 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 キーを保持するため、置き場所はサーバー、ジョブ、または自分のマシンで動くツールです。キーは環境変数かフレームワークのシークレットに保管し、決してコードに書かないでください。