تخطَّ إلى المستندات
Go

التثبيت

وحدة واحدة، 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، أي map[string]any تحتفظ مفاتيحها بأسماء الواجهة البرمجية، لذا يُكتب scheduledAt هنا كما في مرجع الواجهة البرمجية. والاستجابة هي openemail.Object، أي JSON بعد فك ترميزه مع دوال قراءة مثل ID وString وInt وBool وTime وObject.

عودة Send لا تعني أن الرسالة قد ذهبت. فالإرسال المجدوَل أو القابل للإلغاء يعود بالحالة queued أو scheduled ويستقر لاحقًا. اقرأ status، لا مجرد كون الاستدعاء قد عاد.

أين يعمل

Go 1.24 وما بعدها، على كل منصة يُبنى لها Go. تمر الطلبات عبر net/http، فيُعاد استخدام الاتصالات ويُحترم HTTPS_PROXY. العميل آمن للاستخدام المتزامن من عدة goroutine: أنشئ واحدًا عند بدء البرنامج وشاركه.

يحمل العميل مفتاح API لمساحة عمل يمكنه إرسال البريد وقراءة صندوق البريد، ولذلك مكانه على خادم، أو في مهمة، أو في أداة تعمل على جهازك. احفظ المفتاح في متغير بيئة أو في أسرار إطار العمل الذي تستخدمه، ولا تضعه في الشيفرة أبدًا.