Skip to content

Commit b3c31d5

Browse files
committed
Added ILoggerFactory to SmtpSender
1 parent 44de7fd commit b3c31d5

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

samples/ConsoleServiceExample/ConsoleServiceExample.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11-
<PackageReference Include="MailKitSimplified.Receiver" Version="2.4.8-tags-v2-4-8-delt0001" />
12-
<PackageReference Include="MailKitSimplified.Sender" Version="2.4.8-tags-v2-4-8-delt0001" />
11+
<PackageReference Include="MailKitSimplified.Receiver" Version="2.4.8-tags-v2-4-8-eta0001" />
12+
<PackageReference Include="MailKitSimplified.Sender" Version="2.4.8-tags-v2-4-8-eta0001" />
1313
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
1414
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
1515
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />

source/MailKitSimplified.Receiver/Services/ImapReceiver.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ namespace MailKitSimplified.Receiver.Services
1818
{
1919
public sealed class ImapReceiver : IImapReceiver
2020
{
21-
private Func<IImapClient, Task> _customAuthenticationMethod;
2221
private Lazy<MailFolderClient> _mailFolderClient;
2322
private Lazy<MailFolderReader> _mailFolderReader;
2423
private Lazy<MailFolderMonitor> _mailFolderMonitor;
24+
private Func<IImapClient, Task> _customAuthenticationMethod;
2525
private IImapClient _imapClient;
2626
private IProtocolLogger _imapLogger;
27-
private EmailReceiverOptions _receiverOptions;
2827
private ILogger<ImapReceiver> _logger;
2928
private ILoggerFactory _loggerFactory;
29+
private EmailReceiverOptions _receiverOptions;
3030

3131
public ImapReceiver(IOptions<EmailReceiverOptions> receiverOptions, ILogger<ImapReceiver> logger = null, IProtocolLogger protocolLogger = null, IImapClient imapClient = null, ILoggerFactory loggerFactory = null)
3232
{
3333
_loggerFactory = loggerFactory ?? NullLoggerFactory.Instance;
34-
_logger = logger ?? loggerFactory?.CreateLogger<ImapReceiver>() ?? NullLogger<ImapReceiver>.Instance;
34+
_logger = logger ?? _loggerFactory.CreateLogger<ImapReceiver>();
3535
SetOptions(receiverOptions?.Value);
3636
if (imapClient == null)
3737
SetProtocolLog(protocolLogger);

source/MailKitSimplified.Sender/Services/SmtpSender.cs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,20 @@ namespace MailKitSimplified.Sender.Services
2323
/// <inheritdoc cref="ISmtpSender" />
2424
public sealed class SmtpSender : ISmtpSender
2525
{
26-
private ISmtpClient _smtpClient;
27-
private IProtocolLogger _smtpLogger;
28-
private Func<ISmtpClient, Task> _customAuthenticationMethod;
2926
private CancellationTokenSource _cts = null;
3027
private readonly ConcurrentQueue<MimeMessage> _sendQueue = new ConcurrentQueue<MimeMessage>();
28+
private Func<ISmtpClient, Task> _customAuthenticationMethod;
29+
private ISmtpClient _smtpClient;
30+
private IProtocolLogger _smtpLogger;
3131
private ILogger<SmtpSender> _logger;
32+
private ILoggerFactory _loggerFactory;
3233
private readonly EmailSenderOptions _senderOptions;
3334

3435
/// <inheritdoc cref="ISmtpSender" />
35-
public SmtpSender(IOptions<EmailSenderOptions> senderOptions, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null)
36+
public SmtpSender(IOptions<EmailSenderOptions> senderOptions, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null, ILoggerFactory loggerFactory = null)
3637
{
37-
_logger = logger ?? NullLogger<SmtpSender>.Instance;
38+
_loggerFactory = loggerFactory ?? NullLoggerFactory.Instance;
39+
_logger = logger ?? _loggerFactory.CreateLogger<SmtpSender>();
3840
_senderOptions = senderOptions.Value;
3941
if (string.IsNullOrWhiteSpace(_senderOptions.SmtpHost))
4042
throw new ArgumentException($"{nameof(EmailSenderOptions.SmtpHost)} is not set.");
@@ -44,31 +46,31 @@ public SmtpSender(IOptions<EmailSenderOptions> senderOptions, ILogger<SmtpSender
4446
SetSmtpClient(smtpClient);
4547
}
4648

47-
public static SmtpSender Create(string smtpHost, ushort smtpPort = 0, string username = null, string password = null, string protocolLog = null, bool protocolLogFileAppend = false, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null)
49+
public static SmtpSender Create(string smtpHost, ushort smtpPort = 0, string username = null, string password = null, string protocolLog = null, bool protocolLogFileAppend = false, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null, ILoggerFactory loggerFactory = null)
4850
{
4951
var smtpCredential = new NetworkCredential(username, password);
50-
var sender = Create(smtpHost, smtpCredential, smtpPort, protocolLog, protocolLogFileAppend, logger, protocolLogger, smtpClient);
52+
var sender = Create(smtpHost, smtpCredential, smtpPort, protocolLog, protocolLogFileAppend, logger, protocolLogger, smtpClient, loggerFactory);
5153
return sender;
5254
}
5355

54-
public static SmtpSender Create(string smtpHost, NetworkCredential smtpCredential, ushort smtpPort = 0, string protocolLog = null, bool protocolLogFileAppend = false, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null)
56+
public static SmtpSender Create(string smtpHost, NetworkCredential smtpCredential, ushort smtpPort = 0, string protocolLog = null, bool protocolLogFileAppend = false, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null, ILoggerFactory loggerFactory = null)
5557
{
5658
var senderOptions = new EmailSenderOptions(smtpHost, smtpCredential, smtpPort, protocolLog, protocolLogFileAppend);
57-
var sender = Create(senderOptions, logger, protocolLogger, smtpClient);
59+
var sender = Create(senderOptions, logger, protocolLogger, smtpClient, loggerFactory);
5860
return sender;
5961
}
6062

61-
public static SmtpSender Create(EmailSenderOptions emailSenderOptions, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null)
63+
public static SmtpSender Create(EmailSenderOptions emailSenderOptions, ILogger<SmtpSender> logger = null, IProtocolLogger protocolLogger = null, ISmtpClient smtpClient = null, ILoggerFactory loggerFactory = null)
6264
{
6365
var senderOptions = Options.Create(emailSenderOptions);
64-
var sender = new SmtpSender(senderOptions, logger, protocolLogger, smtpClient);
66+
var sender = new SmtpSender(senderOptions, logger, protocolLogger, smtpClient, loggerFactory);
6567
return sender;
6668
}
6769

68-
public static SmtpSender Create(ISmtpClient smtpClient, EmailSenderOptions emailSenderOptions, ILogger<SmtpSender> logger = null)
70+
public static SmtpSender Create(ISmtpClient smtpClient, EmailSenderOptions emailSenderOptions, ILogger<SmtpSender> logger = null, ILoggerFactory loggerFactory = null)
6971
{
7072
var senderOptions = Options.Create(emailSenderOptions);
71-
var sender = new SmtpSender(senderOptions, logger, null, smtpClient);
73+
var sender = new SmtpSender(senderOptions, logger, null, smtpClient, loggerFactory);
7274
return sender;
7375
}
7476

@@ -111,11 +113,12 @@ public SmtpSender SetProtocolLog(string logFilePath, bool append = false)
111113

112114
/// <summary>
113115
/// For those not using dependency injection.
114-
/// <example>LoggerFactory.Create(_ => _.SetMinimumLevel(LogLevel.Debug).AddDebug().AddConsole()).CreateLogger<SmtpSender>();</example>
116+
/// <example>LoggerFactory.Create(_ => _.SetMinimumLevel(LogLevel.Debug).AddDebug().AddConsole());</example>
115117
/// </summary>
116-
public SmtpSender SetLogger(ILogger<SmtpSender> logger)
118+
public SmtpSender SetLogger(ILoggerFactory loggerFactory, ILogger<SmtpSender> logger)
117119
{
118-
_logger = logger ?? NullLogger<SmtpSender>.Instance;
120+
_loggerFactory = loggerFactory ?? _loggerFactory ?? NullLoggerFactory.Instance;
121+
_logger = logger ?? _logger ?? _loggerFactory.CreateLogger<SmtpSender>();
119122
return this;
120123
}
121124

@@ -154,7 +157,7 @@ public SmtpSender SetCustomAuthentication(Func<ISmtpClient, Task> customAuthenti
154157
return this;
155158
}
156159

157-
public IEmailWriter WriteEmail => new EmailWriter(this);
160+
public IEmailWriter WriteEmail => new EmailWriter(this, _loggerFactory.CreateLogger<EmailWriter>());
158161

159162
[Obsolete("Use EmailSenderOptions.CreateProtocolLogger instead.")]
160163
public static IProtocolLogger GetProtocolLogger(string logFilePath = null, bool append = false, IFileSystem fileSystem = null)

0 commit comments

Comments
 (0)