remove postmark lib

This commit is contained in:
2026-07-01 13:54:30 +02:00
parent 987bd5d7de
commit 77337cb476
5 changed files with 0 additions and 135 deletions
@@ -1,120 +0,0 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using PostmarkDotNet;
using PostmarkDotNet.Model;
namespace Mixtape.Mails.Dispatchers.Postmark;
public class PostmarkDispatcher : IMailDispatcher
{
protected PostmarkClient Postmark { get; set; }
protected PostmarkAdminClient PostmarkAdmin { get; set; }
protected MailOptions Options { get; set; }
protected IWebHostEnvironment Env { get; set; }
public PostmarkDispatcher(IOptionsMonitor<MailOptions> monitor, IWebHostEnvironment env)
{
Options = monitor.CurrentValue;
PostmarkOptions opts = Options.Postmark ?? new();
Postmark = new(opts.ServerToken);
PostmarkAdmin = new(opts.AccountToken);
Env = env;
monitor.OnChange(_opts =>
{
Options = _opts;
Postmark = new(_opts.Postmark?.ServerToken);
});
}
/// <inheritdoc />
public async Task<bool> IsSenderSupported(string email)
{
if (email.IsNullOrWhiteSpace() || Options.Postmark.AccountToken.IsNullOrEmpty())
{
return true;
}
try
{
email = email.FullTrim();
PostmarkSenderSignatureList signatures = await PostmarkAdmin.GetSenderSignaturesAsync();
return signatures.SenderSignatures.Any(x => x.Confirmed && x.EmailAddress.Equals(email, StringComparison.InvariantCultureIgnoreCase));
}
catch
{
return true;
}
}
/// <inheritdoc />
public async Task Send(Mail message, CancellationToken token = default)
{
PostmarkMessage data = new()
{
// to addresses
To = message.To.ToString(),
Cc = message.CC.ToString(),
Bcc = message.Bcc.ToString(),
// from address
From = message.From.ToString(),
ReplyTo = message.ReplyToList.ToString(),
// subject
Subject = message.Subject,
// tracking
TrackLinks = LinkTrackingOptions.None,
TrackOpens = false,
// configuration
MessageStream = Options.Postmark.MessageStream,
//Tag = message.Template?.Key,
Metadata = message.Metadata
};
// set attachments
foreach (System.Net.Mail.Attachment attachment in message.Attachments)
{
data.AddAttachment(attachment.ContentStream, attachment.Name, attachment.ContentType.MediaType, attachment.ContentId);
}
// set body
if (!message.IsBodyHtml)
{
data.TextBody = message.Body;
}
else
{
data.HtmlBody = message.Body;
}
// finally sends the message
PostmarkResponse response = await Postmark.SendMessageAsync(data);
if (response.ErrorCode > 0)
{
throw new PostmarkSendException($"Could not send message via Postmark API. Code: {response.ErrorCode}, Message: {response.Message}");
}
}
/// <inheritdoc />
public void Dispose() { }
}
public class PostmarkSendException : Exception
{
public PostmarkSendException() : base() { }
public PostmarkSendException(string message) : base(message) { }
}
@@ -1,10 +0,0 @@
namespace Mixtape.Mails.Dispatchers.Postmark;
public class PostmarkOptions
{
public string ServerToken { get; set; }
public string AccountToken { get; set; }
public string MessageStream { get; set; } = "outbound";
}
-3
View File
@@ -1,5 +1,4 @@
using Mixtape.Mails.Dispatchers.Lettermint;
using Mixtape.Mails.Dispatchers.Postmark;
using Mixtape.Mails.Dispatchers.Scaleway;
namespace Mixtape.Mails;
@@ -22,8 +21,6 @@ public class MailOptions
public string SenderName { get; set; }
public PostmarkOptions Postmark { get; set; }
public ScalewayOptions Scaleway { get; set; }
public LettermintOptions Lettermint { get; set; }
-1
View File
@@ -1,5 +1,4 @@
using Mixtape.Mails.Dispatchers;
using Mixtape.Mails.Dispatchers.Postmark;
using Mixtape.Mails.Dispatchers.Scaleway;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
-1
View File
@@ -17,7 +17,6 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="10.0.7" />
<PackageReference Include="FluentValidation" Version="12.1.1" />
<PackageReference Include="Postmark" Version="5.3.0" />
<PackageReference Include="PowCapServer.Core" Version="2.0.1" />
<PackageReference Include="Seq.Extensions.Logging" Version="9.0.0" />
<PackageReference Include="SixLabors.ImageSharp.Web" Version="3.2.0" />