This Aspire Integration runs Papercut SMTP in a container.
The Papercut SMTP integration exposes a connection string with the format endpoint=smtp://<host>:<port>.
This connection string can be used to with a DbConnectionStringBuilder to get the smtp endpoint.
var builder = DistributedApplication.CreateBuilder(args);
var papercut = builder.AddPapercutSmtp("papercut");
var xyz = builder.AddProject<Xyz>("application")
.WithReference(papercut)
.WaitFor(papercut);
builder.Build().Run();var builder = DistributedApplication.CreateBuilder(args);
var papercut = builder.AddPapercutSmtp("papercut", 80, 25);
var xyz = builder.AddProject<Xyz>("application")
.WithReference(papercut)
.WaitFor(papercut);
builder.Build().Run();string? papercutConnectionString = builder.Configuration.GetConnectionString("papercut");
DbConnectionStringBuilder connectionBuilder = new()
{
ConnectionString = papercutConnectionString
};
Uri endpoint = new(connectionBuilder["Endpoint"].ToString()!, UriKind.Absolute);
builder.Services.AddScoped(_ => new SmtpClient(endpoint.Host, endpoint.Port));