SquidStd.Mail.MailKit
0.8.0
dotnet add package SquidStd.Mail.MailKit --version 0.8.0
NuGet\Install-Package SquidStd.Mail.MailKit -Version 0.8.0
<PackageReference Include="SquidStd.Mail.MailKit" Version="0.8.0" />
<PackageVersion Include="SquidStd.Mail.MailKit" Version="0.8.0" />
<PackageReference Include="SquidStd.Mail.MailKit" />
paket add SquidStd.Mail.MailKit --version 0.8.0
#r "nuget: SquidStd.Mail.MailKit, 0.8.0"
#:package SquidStd.Mail.MailKit@0.8.0
#addin nuget:?package=SquidStd.Mail.MailKit&version=0.8.0
#tool nuget:?package=SquidStd.Mail.MailKit&version=0.8.0
<p align="center"> <img src="https://raw.githubusercontent.com/tgiachi/squid-std/main/assets/icon.png" alt="SquidStd" width="120" height="120" /> </p>
<h1 align="center">SquidStd.Mail.MailKit</h1>
<p align="center"> <a href="https://www.nuget.org/packages/SquidStd.Mail.MailKit/"><img src="https://img.shields.io/nuget/v/SquidStd.Mail.MailKit.svg" alt="NuGet" /></a> <img src="https://img.shields.io/nuget/dt/SquidStd.Mail.MailKit.svg" alt="Downloads" /> <a href="https://tgiachi.github.io/squid-std/articles/mail-mailkit.html"><img src="https://img.shields.io/badge/docs-DocFX-1390A3.svg" alt="docs" /></a> <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license" /> </p>
MailKit-backed IMAP/POP3 provider for SquidStd.Mail. Polls a mailbox on the timer wheel and publishes a
MailReceivedEvent on the IEventBus for each new message.
Install
dotnet add package SquidStd.Mail.MailKit
Usage
using DryIoc;
using SquidStd.Mail.Abstractions.Data.Config;
using SquidStd.Mail.Abstractions.Types.Mail;
using SquidStd.Mail.MailKit.Extensions;
container.AddMail(new MailOptions
{
Protocol = MailProtocolType.Imap,
Host = "imap.example.com",
Port = 993,
UseSsl = true,
Username = "user@example.com",
Password = "secret",
PollIntervalSeconds = 30,
IncludeRawEml = true
});
Listen with an IAsyncEventListener<MailReceivedEvent> registered on the IEventBus. IMAP marks messages
\Seen after fetch (configurable); POP3 dedups by UIDL and can delete after download.
Sending (SMTP)
using DryIoc;
using SquidStd.Mail.Abstractions.Data;
using SquidStd.Mail.Abstractions.Data.Config;
using SquidStd.Mail.Abstractions.Interfaces;
using SquidStd.Mail.MailKit.Extensions;
container.AddMailSender(new SmtpOptions
{
Host = "smtp.example.com",
Port = 587,
UseSsl = false,
Username = "user@example.com",
Password = "secret",
DefaultFrom = new MailAddress("App", "app@example.com")
});
var sender = container.Resolve<IMailSender>();
await sender.SendAsync(new OutgoingMailMessage
{
To = [new MailAddress("Bob", "bob@example.com")],
Subject = "Welcome",
HtmlBody = "<p>Hello!</p>"
});
MailSentEvent / MailSendFailedEvent are published on the IEventBus; failures throw MailSendException.
License
MIT — part of SquidStd.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- MailKit (>= 4.17.0)
- SquidStd.Mail.Abstractions (>= 0.8.0)
- SquidStd.Services.Core (>= 0.8.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.