설치
모듈 하나, 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도 적용됩니다. 클라이언트는 여러 고루틴에서 동시에 안전하게 쓸 수 있습니다. 프로그램을 시작할 때 하나를 만들어 공유하세요.
클라이언트는 메일을 보내고 메일함을 읽을 수 있는 워크스페이스 API 키를 들고 있으므로, 서버나 작업, 또는 자신의 컴퓨터에서 실행되는 도구에 두어야 합니다. 키는 환경 변수나 프레임워크의 시크릿에 보관하고, 절대 코드에 넣지 마세요.