diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln
index ce8f43bbae..13ef057f97 100644
--- a/framework/Volo.Abp.sln
+++ b/framework/Volo.Abp.sln
@@ -248,6 +248,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Dapper.Tests", "te
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.MailKit", "src\Volo.Abp.MailKit\Volo.Abp.MailKit.csproj", "{0CAED4CC-1CFD-4092-A326-AFE4DB3A9AB4}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.MailKit.Tests", "test\Volo.Abp.MailKit.Tests\Volo.Abp.MailKit.Tests.csproj", "{70DD6E17-B98B-4B00-8F38-C489E291BB53}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -738,6 +740,10 @@ Global
{0CAED4CC-1CFD-4092-A326-AFE4DB3A9AB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0CAED4CC-1CFD-4092-A326-AFE4DB3A9AB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0CAED4CC-1CFD-4092-A326-AFE4DB3A9AB4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -864,6 +870,7 @@ Global
{D863A3C3-CC1D-426F-BDD4-02E7AE2A3170} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{E026A085-D881-4AE0-9F08-422AC3903BD7} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{0CAED4CC-1CFD-4092-A326-AFE4DB3A9AB4} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {70DD6E17-B98B-4B00-8F38-C489E291BB53} = {447C8A77-E5F0-4538-8687-7383196D04EA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}
diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj
new file mode 100644
index 0000000000..17097b1bf0
--- /dev/null
+++ b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj
@@ -0,0 +1,20 @@
+
+
+
+ netcoreapp2.2
+ latest
+ true
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/AbpMailKitTestModule.cs b/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/AbpMailKitTestModule.cs
new file mode 100644
index 0000000000..b0d6e9f7da
--- /dev/null
+++ b/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/AbpMailKitTestModule.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Autofac;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.MailKit
+{
+ [DependsOn(
+ typeof(AbpMailKitModule),
+ typeof(AbpAutofacModule),
+ typeof(AbpTestBaseModule))]
+ public class AbpMailKitTestModule :AbpModule
+ {
+ }
+}
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
new file mode 100644
index 0000000000..3af4f7e50b
--- /dev/null
+++ b/framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs
@@ -0,0 +1,49 @@
+using System.Net.Mail;
+using System.Threading.Tasks;
+using NSubstitute;
+using Volo.Abp.BackgroundJobs;
+using Volo.Abp.Emailing.Smtp;
+using Xunit;
+
+namespace Volo.Abp.MailKit
+{
+ //Tests are commented because those tests can pass only when a true email configuration is set.
+ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest
+ {
+ //[Fact]
+ public async Task ShouldSendMailMessageAsync()
+ {
+ var mailSender = CreateMailKitEmailSender();
+ var mailMessage = new MailMessage("from_mail_address@asd.com", "to_mail_address@asd.com", "subject", "body")
+ { IsBodyHtml = true };
+
+ await mailSender.SendAsync(mailMessage);
+ }
+
+ //[Fact]
+ public void ShouldSendMailMessage()
+ {
+ var mailSender = CreateMailKitEmailSender();
+ var mailMessage = new MailMessage("from_mail_address@asd.com", "to_mail_address@asd.com", "subject", "body")
+ { IsBodyHtml = true };
+
+ mailSender.Send(mailMessage);
+ }
+
+ private static MailKitSmtpEmailSender CreateMailKitEmailSender()
+ {
+ var mailConfig = Substitute.For();
+ var mailKitConfig = Substitute.For();
+ var bgJob = Substitute.For();
+
+ mailConfig.GetHostAsync().Returns("stmp_server_name");
+ mailConfig.GetUserNameAsync().Returns("mail_server_user_name");
+ mailConfig.GetPasswordAsync().Returns("mail_server_password");
+ mailConfig.GetPortAsync().Returns(587);
+ mailConfig.GetEnableSslAsync().Returns(false);
+
+ var mailSender = new MailKitSmtpEmailSender(mailConfig, bgJob, mailKitConfig);
+ return mailSender;
+ }
+ }
+}