diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs index 86a34b4210..0b30a9bfd1 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs @@ -1,12 +1,15 @@ using System; using System.Collections.Generic; using Volo.Abp.Data; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Emailing; [Serializable] -public class BackgroundEmailSendingJobArgs +public class BackgroundEmailSendingJobArgs : IMultiTenant { + public Guid? TenantId { get; set; } + public string? From { get; set; } public string To { get; set; } = default!; diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs index 55d4b50a58..164674f7c3 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.BackgroundJobs; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Emailing; @@ -17,6 +18,8 @@ public abstract class EmailSenderBase : IEmailSender { public ILogger Logger { get; set; } + protected ICurrentTenant CurrentTenant { get; } + protected IEmailSenderConfiguration Configuration { get; } protected IBackgroundJobManager BackgroundJobManager { get; } @@ -24,10 +27,14 @@ public abstract class EmailSenderBase : IEmailSender /// /// Constructor. /// - protected EmailSenderBase(IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager) + protected EmailSenderBase( + ICurrentTenant currentTenant, + IEmailSenderConfiguration configuration, + IBackgroundJobManager backgroundJobManager) { Logger = NullLogger.Instance; + CurrentTenant = currentTenant; Configuration = configuration; BackgroundJobManager = backgroundJobManager; } @@ -93,6 +100,7 @@ public abstract class EmailSenderBase : IEmailSender await BackgroundJobManager.EnqueueAsync( new BackgroundEmailSendingJobArgs { + TenantId = CurrentTenant.Id, To = to, Subject = subject, Body = body, @@ -113,6 +121,7 @@ public abstract class EmailSenderBase : IEmailSender await BackgroundJobManager.EnqueueAsync( new BackgroundEmailSendingJobArgs { + TenantId = CurrentTenant.Id, From = from, To = to, Subject = subject, diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs index 48fa8004ef..f73783ebeb 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.BackgroundJobs; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Emailing; @@ -15,8 +16,8 @@ public class NullEmailSender : EmailSenderBase /// /// Creates a new object. /// - public NullEmailSender(IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager) - : base(configuration, backgroundJobManager) + public NullEmailSender(ICurrentTenant currentTenant, IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager) + : base(currentTenant, configuration, backgroundJobManager) { } diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs index 62550c41f7..babb9f9d9a 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Volo.Abp.BackgroundJobs; using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Emailing.Smtp; @@ -19,9 +20,10 @@ public class SmtpEmailSender : EmailSenderBase, ISmtpEmailSender, ITransientDepe /// Creates a new . /// public SmtpEmailSender( + ICurrentTenant currentTenant, ISmtpEmailSenderConfiguration smtpConfiguration, IBackgroundJobManager backgroundJobManager) - : base(smtpConfiguration, backgroundJobManager) + : base(currentTenant, smtpConfiguration, backgroundJobManager) { SmtpConfiguration = smtpConfiguration; } diff --git a/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs b/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs index 96e436760e..c4fbd1be5e 100644 --- a/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs +++ b/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using MimeKit; using MimeKit.Utils; +using Volo.Abp.MultiTenancy; using SmtpClient = MailKit.Net.Smtp.SmtpClient; namespace Volo.Abp.MailKit; @@ -20,10 +21,12 @@ public class MailKitSmtpEmailSender : EmailSenderBase, IMailKitSmtpEmailSender protected ISmtpEmailSenderConfiguration SmtpConfiguration { get; } - public MailKitSmtpEmailSender(ISmtpEmailSenderConfiguration smtpConfiguration, + public MailKitSmtpEmailSender( + ICurrentTenant currentTenant, + ISmtpEmailSenderConfiguration smtpConfiguration, IBackgroundJobManager backgroundJobManager, IOptions abpMailKitConfiguration) - : base(smtpConfiguration, backgroundJobManager) + : base(currentTenant, smtpConfiguration, backgroundJobManager) { AbpMailKitOptions = abpMailKitConfiguration.Value; SmtpConfiguration = smtpConfiguration; diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs b/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs index 18c84b2e0b..adc2edf31b 100644 --- a/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs +++ b/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using NSubstitute; using Volo.Abp.BackgroundJobs; using Volo.Abp.Emailing.Smtp; +using Volo.Abp.MultiTenancy; using Volo.Abp.Testing; using Xunit; @@ -35,6 +36,7 @@ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest(); var mailConfig = Substitute.For(); var bgJob = Substitute.For(); @@ -44,7 +46,7 @@ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest