SquidStd.Mail.MailKit
0.9.0
dotnet add package SquidStd.Mail.MailKit --version 0.9.0
NuGet\Install-Package SquidStd.Mail.MailKit -Version 0.9.0
<PackageReference Include="SquidStd.Mail.MailKit" Version="0.9.0" />
<PackageVersion Include="SquidStd.Mail.MailKit" Version="0.9.0" />
<PackageReference Include="SquidStd.Mail.MailKit" />
paket add SquidStd.Mail.MailKit --version 0.9.0
#r "nuget: SquidStd.Mail.MailKit, 0.9.0"
#:package SquidStd.Mail.MailKit@0.9.0
#addin nuget:?package=SquidStd.Mail.MailKit&version=0.9.0
#tool nuget:?package=SquidStd.Mail.MailKit&version=0.9.0
<h1 align="center">SquidStd.Mail.MailKit</h1>
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.
Key types
| Type | Purpose |
|---|---|
MailRegistrationExtensions |
AddMail(...) registration (IMAP/POP3 polling). |
MailSenderRegistrationExtensions |
AddMailSender(...) registration (SMTP). |
ImapMailReader / Pop3MailReader |
IMailReader implementations. |
MailKitMailSender |
IMailSender implementation over SMTP. |
Related
- Tutorial: Email
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.9.0)
- SquidStd.Services.Core (>= 0.9.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.