Belgelere geç
C#

Kurulum

.NET 8 ve sonrası ile .NET Standard 2.0 için tek bir NuGet paketi; .NET 8 üzerinde hiçbir bağımlılığı yoktur.

Kurulum

Güncel sürüm 0.0.1. TypeScript SDK'sındaki her yöntem için bir yöntemi vardır ve biri eksik kaldığında ya da farklı bir istek gönderdiğinde paketin eşlik denetimi derlemeyi başarısız kılar.

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() anahtarı OPENEMAIL_API_KEY değişkeninden okur, böylece kodda hiçbir kimlik bilgisi bulunmaz. Yapılandırmanız başka bir yerdeyse new OpenEmailOptions { ApiKey = ... } geçirin. Eksik ya da hatalı biçimli bir anahtar, istemci oluşturulurken ve hiçbir şey gönderilmeden önce ArgumentException fırlatır.

İstek gövdesi bir Body ya da anahtarları API'nin adlarını koruyan herhangi bir IReadOnlyDictionary<string, object?> değeridir; bu yüzden scheduledAt burada API başvurusundaki gibi yazılır. Yanıt, System.Text.Json.Nodes içindeki bir JsonObject değeridir ve sent["id"] ile okunur.

SendAsync çağrısının dönmesi iletinin gittiği anlamına gelmez. Zamanlanmış ya da iptal edilebilir bir gönderim queued veya scheduled olarak döner ve daha sonra sonuçlanır. Çağrının dönmüş olmasına değil, status değerine bakın.

Tek bir dosyada deneyin

.NET 10 üzerinde tek bir dosya proje olmadan çalışır. #:package satırı paketi indirir ve dotnet run send.cs iletiyi gönderir.

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"]);

Nerede çalışır

Paket net8.0 ve netstandard2.0 hedeflerini destekler. .NET 8 ve sonrasında hiçbir bağımlılığı yoktur; kırpılması ve önceden derlenmesi güvenlidir. .NET Standard 2.0 üzerinde System.Text.Json ve Microsoft.Bcl.AsyncInterfaces paketlerini getirir. Bir istemci aynı anda birçok iş parçacığından güvenle kullanılabilir: program başlarken bir tane oluşturun ve paylaşın.

İstemci, posta gönderebilen ve posta kutusunu okuyabilen bir çalışma alanı API anahtarı taşır; bu yüzden yeri bir sunucu, bir iş ya da kendi makinenizde çalışan bir araçtır. Anahtarı bir ortam değişkeninde ya da framework'ünüzün gizli bilgi deposunda tutun, asla kodda değil.