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

التثبيت

حزمة NuGet واحدة لـ .NET 8 وما بعده ولـ .NET Standard 2.0، بلا أي تبعيات على .NET 8.

التثبيت

الإصدار الحالي هو 0.0.1. فيه دالة لكل دالة في TypeScript SDK، وفحص التطابق في الحزمة يُفشل البناء حين تنقص واحدة أو ترسل طلبًا مختلفًا.

dotnet add package OpenEmail
Program.cs
using OpenEmail; var client = new OpenEmailClient(); var sent = await client.Emails.SendAsync(new Body{    ["from"] = "Acme Billing <[email protected]>",    ["to"] = "[email protected]",    ["subject"] = "Your September invoice",    ["html"] = "<p>Invoice attached.</p>",}); Console.WriteLine($"{sent["id"]} {sent["status"]}");

يقرأ new OpenEmailClient() المفتاح من OPENEMAIL_API_KEY، فلا تحمل الشيفرة أي بيانات اعتماد. مرّر new OpenEmailOptions { ApiKey = ... } حين يكون إعدادك في مكان آخر. المفتاح المفقود أو غير الصحيح يرمي ArgumentException عند بناء العميل، قبل إرسال أي شيء.

جسم الطلب هو Body، أو أي IReadOnlyDictionary<string, object?> تحتفظ مفاتيحه بأسماء الواجهة البرمجية، لذا يُكتب scheduledAt هنا كما في مرجع الواجهة البرمجية. والاستجابة هي JsonObject من System.Text.Json.Nodes، وتُقرأ عبر sent["id"].

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

جرّبها في ملف واحد

على .NET 10 يعمل ملف واحد من دون مشروع. السطر #:package يجلب الحزمة، وdotnet run send.cs يرسل الرسالة.

send.cs
#:package OpenEmail@* using OpenEmail; var client = new OpenEmailClient(); var sent = await client.Emails.SendAsync(new Body{    ["from"] = "[email protected]",    ["to"] = "[email protected]",    ["subject"] = "Sent from one file",    ["text"] = "No project was needed.",}); Console.WriteLine(sent["id"]);

أين يعمل

تستهدف الحزمة net8.0 وnetstandard2.0. على .NET 8 وما بعده لا تبعيات لها، ويمكن بأمان تقليمها وتصريفها مسبقًا. وعلى .NET Standard 2.0 تجلب System.Text.Json وMicrosoft.Bcl.AsyncInterfaces. يمكن استخدام العميل بأمان من خيوط كثيرة في الوقت نفسه: ابنِ واحدًا عند بدء البرنامج وشاركه.

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