پرش به مستندات
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?> که کلیدهایش نام‌های API را نگه می‌دارند، پس scheduledAt اینجا همان‌طور نوشته می‌شود که در مرجع API. پاسخ یک 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 فضای کاری را با خود دارد که می‌تواند ایمیل بفرستد و صندوق پستی را بخواند، پس جایش روی سرور، در یک کار پس‌زمینه یا در ابزاری است که روی دستگاه خودتان اجرا می‌شود. کلید را در یک متغیر محیطی یا مخزن رازهای فریم‌ورک‌تان نگه دارید، هرگز در کد.