diff --git a/src/Senders/FluentEmail.MailKit/MailKitSender.cs b/src/Senders/FluentEmail.MailKit/MailKitSender.cs index 8a5d1413..805e9458 100644 --- a/src/Senders/FluentEmail.MailKit/MailKitSender.cs +++ b/src/Senders/FluentEmail.MailKit/MailKitSender.cs @@ -110,7 +110,8 @@ public async Task SendAsync(IFluentEmail email, CancellationToken? { if (_smtpClientOptions.UsePickupDirectory) { - await this.SaveToPickupDirectory(message, _smtpClientOptions.MailPickupDirectory); + var messageId = await this.SaveToPickupDirectory(message, _smtpClientOptions.MailPickupDirectory); + response.MessageId = messageId; return response; } @@ -156,20 +157,24 @@ await client.ConnectAsync( /// /// Message to save for pickup. /// Pickup directory. - private async Task SaveToPickupDirectory(MimeMessage message, string pickupDirectory) + private async Task SaveToPickupDirectory(MimeMessage message, string pickupDirectory) { // Note: this will require that you know where the specified pickup directory is. - var path = Path.Combine(pickupDirectory, Guid.NewGuid().ToString() + ".eml"); + var messageId = Guid.NewGuid().ToString(); + var path = Path.Combine(pickupDirectory, messageId + ".eml"); if (File.Exists(path)) - return; + return null; try { + //create the directory since it might not exist + Directory.CreateDirectory(pickupDirectory); + using (var stream = new FileStream(path, FileMode.CreateNew)) { await message.WriteToAsync(stream); - return; + return messageId; } } catch (IOException)