Dërgoni një email
Një mesazh tani ose më vonë, me bashkëngjitje, ose njëqind në një kërkesë të vetme.
Dërgoni një mesazh
var sent = await client.Emails.SendAsync(new Body{ ["from"] = "Acme Billing <[email protected]>", ["to"] = new[] { "[email protected]", "[email protected]" }, ["replyTo"] = "[email protected]", ["subject"] = "Your September invoice", ["html"] = "<p>The invoice is attached.</p>", ["text"] = "The invoice is attached.", ["tags"] = new Body { ["invoice"] = "inv_2026_09_4192" },}); Console.WriteLine($"{sent["id"]} {sent["status"]}");to, cc dhe bcc marrin një adresë ose një listë, dhe një adresë është tekst si Ada <[email protected]> ose një fjalor me email dhe name. Trupi vjen nga html dhe text, nga një template i ruajtur ose nga një draftId.
Çdo dërgim mban një çelës idempotence. Klienti krijon një për çdo thirrje dhe e ripërdor kur riprovon, kështu që një kërkesë e riprovuar e përsërit mesazhin e parë. Jepni idempotencyKey: që kjo të vlejë edhe ndërmjet proceseve dhe rinisjeve.
Bashkëngjitjet
await using var invoice = File.OpenRead("invoice.pdf"); await client.Emails.SendAsync(new Body{ ["from"] = "[email protected]", ["to"] = "[email protected]", ["subject"] = "Your September invoice", ["text"] = "The invoice is attached.", ["attachments"] = new[] { new Body { ["filename"] = "invoice.pdf", ["content"] = invoice, ["contentType"] = "application/pdf" }, new Body { ["fileId"] = "file_3f9c2a7b1e4d8f60a5c7b92d" }, },});content merr një byte[] ose një Stream të lexueshëm, të cilët klienti i kodon si base64, ose tekst që është tashmë base64. fileId emërton një skedar të ngarkuar me client.Files.UploadAsync(), dhe kështu dërgohet një skedar më i madh se 5 MB.
Dërgoni më vonë
var scheduled = await client.Emails.SendAsync(new Body{ ["from"] = "[email protected]", ["to"] = "[email protected]", ["subject"] = "Your invoice is due tomorrow", ["text"] = "A reminder that the invoice is due tomorrow.", ["scheduledAt"] = DateTimeOffset.UtcNow.AddDays(1),}); var id = scheduled["id"]!.GetValue<string>(); await client.Emails.RescheduleAsync(id, DateTimeOffset.UtcNow.AddDays(2)); var cancelled = await client.Emails.CancelAsync(id); Console.WriteLine(cancelled["status"]);scheduledAt merr një DateTimeOffset, një çast ISO 8601 ose një kohëzgjatje si PT1H. Një DateTimeOffset kudo në një trup dërgohet si një çast ISO 8601 në UTC. Një mesazh i planifikuar mund të ndryshohet ose të anulohet derisa të niset.
Dërgoni një grup
var result = await client.Emails.SendBatchAsync(new[]{ new Body { ["from"] = "[email protected]", ["to"] = "[email protected]", ["subject"] = "Order AC-4192 has shipped", ["text"] = "It is on its way." }, new Body { ["from"] = "[email protected]", ["to"] = "[email protected]", ["subject"] = "Order AC-4193 has shipped", ["text"] = "It is on its way." },}); Console.WriteLine($"{result.Sent} sent, {result.Failed} failed"); foreach (var item in result){ if ((string?)item["status"] == "error") { Console.WriteLine($"{item["index"]} {item["error"]?["message"]}"); }}Një grup mban deri në 100 mesazhe dhe nuk është kurrë gjithçka ose asgjë: një adresë e gabuar e bën të dështojë vetëm elementin e vet dhe pjesa tjetër niset gjithsesi. Kontrolloni Failed dhe status të çdo elementi në vend që të mbështeteni te një përjashtim.