EmailSender.Graph
1.0.0
dotnet add package EmailSender.Graph --version 1.0.0
NuGet\Install-Package EmailSender.Graph -Version 1.0.0
<PackageReference Include="EmailSender.Graph" Version="1.0.0" />
<PackageVersion Include="EmailSender.Graph" Version="1.0.0" />
<PackageReference Include="EmailSender.Graph" />
paket add EmailSender.Graph --version 1.0.0
#r "nuget: EmailSender.Graph, 1.0.0"
#:package EmailSender.Graph@1.0.0
#addin nuget:?package=EmailSender.Graph&version=1.0.0
#tool nuget:?package=EmailSender.Graph&version=1.0.0
EmailSender.Graph
A lightweight C# library for sending emails using the Microsoft Graph API with support for:
- Multiple recipients
- HTML body content
- File attachments
✨ Features
- Send emails through a Microsoft 365 (Exchange Online) mailbox
- Support for multiple
To
recipients - Optional file attachments
- Uses Azure AD client credentials (daemon app authentication)
📦 Installation
Clone or install via NuGet (after publishing to NuGet.org or your internal feed):
dotnet add package EmailSender.Graph
Requires
.NET Standard 2.1
or higher (.NET 6+ recommended)
🔧 Prerequisites
- An Azure AD application with
Mail.Send
permissions (Application type) - Microsoft 365 mailbox (e.g.,
smtp_no_reply@yourdomain.com
) - Registered application secret
🚀 Usage
using EmailSender.Graph; using Microsoft.Graph.Models;
var sender = new GraphEmailSender( tenantId: "your-tenant-id", clientId: "your-client-id", clientSecret: "your-client-secret", senderEmail: "smtp_no_reply@yourdomain.com" );
var attachments = new List<Attachment> { new FileAttachment { Name = "example.txt", ContentBytes = System.Text.Encoding.UTF8.GetBytes("Sample file content"), ContentType = "text/plain" } };
await sender.SendEmailAsync( subject: "Hello from Graph", body: "<p>This is a test email with <strong>HTML</strong> content.</p>", toRecipients: new List<string> { "user1@example.com", "user2@example.com" }, attachments: attachments );
📁 Attachment Model
Use the standard Microsoft Graph SDK FileAttachment
model. Each attachment must include:
Name
: filenameContentType
: MIME type (e.g.,application/pdf
,text/plain
)ContentBytes
: file content as a byte array
✅ Permissions Required
Ensure your app registration has the following Microsoft Graph application permissions:
Mail.Send
Don't forget to grant admin consent after setting permissions.
🛠 Optional Improvements for Later
- Add interface
IEmailSender
for abstraction - Add unit tests or integration test helpers
- Support for
Cc
,Bcc
, or sending on behalf of others - Automatic MIME type detection (e.g., via
MimeKit
orSystem.Net.Mime
)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Azure.Identity (>= 1.14.1)
- Microsoft.Graph (>= 5.83.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 140 | 6/27/2025 |