Explorar el Código

修正异步发邮件的bug

懒得勤快 hace 4 años
padre
commit
7ac8c18ab0

+ 3 - 3
Masuit.Tools.Abstractions/Masuit.Tools.Abstractions.csproj

@@ -4,7 +4,7 @@
     <LangVersion>latest</LangVersion>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <CodeAnalysisRuleSet />
-    <Version>2.4.4.6</Version>
+    <Version>2.4.4.7</Version>
     <Authors>懒得勤快</Authors>
     <Description>Masuit.Tools基础公共库,包含一些常用的操作类,大都是静态类,加密解密,反射操作,Excel简单导出,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期时间扩展操作,中国农历,大文件拷贝,图像裁剪,验证码,断点续传,集合扩展等常用封装。</Description>
     <Copyright>懒得勤快,长空X</Copyright>
@@ -17,9 +17,9 @@
     <RepositoryType>Github</RepositoryType>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
     <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
-    <FileVersion>2.4.4.6</FileVersion>
+    <FileVersion>2.4.4.7</FileVersion>
     <Company>masuit.com</Company>
-    <AssemblyVersion>2.4.4.6</AssemblyVersion>
+    <AssemblyVersion>2.4.4.7</AssemblyVersion>
     <PackageLicenseUrl>https://github.com/ldqk/Masuit.Tools/blob/master/LICENSE</PackageLicenseUrl>
     <EmbedUntrackedSources>true</EmbedUntrackedSources>
     <IncludeSymbols>true</IncludeSymbols>

+ 10 - 16
Masuit.Tools.Abstractions/Models/Email.cs

@@ -46,6 +46,7 @@ namespace Masuit.Tools.Models
         /// </summary>
         public List<Attachment> Attachments { get; set; } = new List<Attachment>();
 
+        private MailMessage _mailMessage => GetClient();
         /// <summary>
         /// 邮件消息对象
         /// </summary>
@@ -93,16 +94,11 @@ namespace Masuit.Tools.Models
         /// <returns></returns>
         public void SendAsync(Action<string> completedCallback)
         {
-            using var smtpClient = SmtpClient;
-            using var mailMessage = GetClient();
-            if (smtpClient == null || mailMessage == null) return;
-            Subject = Subject;
-            Body = Body;
-            //EnableSsl = false;
+            if (_mailMessage == null) return;
             //发送邮件回调方法
             _actionSendCompletedCallback = completedCallback;
-            smtpClient.SendCompleted += SendCompletedCallback;
-            smtpClient.SendAsync(mailMessage, "true"); //异步发送邮件,如果回调方法中参数不为"true"则表示发送失败
+            SmtpClient.SendCompleted += SendCompletedCallback;
+            SmtpClient.SendAsync(_mailMessage, "true"); //异步发送邮件,如果回调方法中参数不为"true"则表示发送失败
         }
 
         /// <summary>
@@ -110,13 +106,10 @@ namespace Masuit.Tools.Models
         /// </summary>
         public void Send()
         {
-            using var smtpClient = SmtpClient;
-            using var mailMessage = GetClient();
-            if (smtpClient == null || mailMessage == null) return;
-            Subject = Subject;
-            Body = Body;
-            //EnableSsl = false;
-            smtpClient.Send(mailMessage); //异步发送邮件,如果回调方法中参数不为"true"则表示发送失败
+            if (_mailMessage == null) return;
+            SmtpClient.Send(_mailMessage); //异步发送邮件,如果回调方法中参数不为"true"则表示发送失败
+            _mailMessage.Dispose();
+            SmtpClient.Dispose();
         }
 
         /// <summary>
@@ -128,7 +121,6 @@ namespace Masuit.Tools.Models
         {
             //同一组件下不需要回调方法,直接在此写入日志即可
             //写入日志
-            //return;
             if (_actionSendCompletedCallback == null) return;
             string message;
             if (e.Cancelled)
@@ -144,6 +136,8 @@ namespace Masuit.Tools.Models
                 message = (string)e.UserState;
             }
 
+            _mailMessage.Dispose();
+            SmtpClient.Dispose();
             //执行回调方法
             _actionSendCompletedCallback(message);
         }

+ 0 - 54
Masuit.Tools.Abstractions/Models/PagedList.cs

@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
 
 namespace Masuit.Tools.Models
 {
@@ -66,57 +65,4 @@ namespace Masuit.Tools.Models
             Data = items;
         }
     }
-
-    public static partial class IQueryableExt
-    {
-        /// <summary>
-        /// 生成分页集合
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="query"></param>
-        /// <param name="page">当前页</param>
-        /// <param name="size">页大小</param>
-        /// <returns></returns>
-        public static PagedList<T> ToPagedList<T>(this IQueryable<T> query, int page, int size)
-        {
-            var totalCount = query.Count();
-            if (page * size > totalCount)
-            {
-                page = (int)Math.Ceiling(totalCount / (size * 1.0));
-            }
-
-            if (page <= 0)
-            {
-                page = 1;
-            }
-
-            var list = query.Skip(size * (page - 1)).Take(size).ToList();
-            return new PagedList<T>(list, page, size, totalCount);
-        }
-
-        /// <summary>
-        /// 生成分页集合
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="query"></param>
-        /// <param name="page">当前页</param>
-        /// <param name="size">页大小</param>
-        /// <returns></returns>
-        public static PagedList<T> ToPagedList<T>(this IEnumerable<T> query, int page, int size)
-        {
-            var totalCount = query.Count();
-            if (page * size > totalCount)
-            {
-                page = (int)Math.Ceiling(totalCount / (size * 1.0));
-            }
-
-            if (page <= 0)
-            {
-                page = 1;
-            }
-
-            var list = query.Skip(size * (page - 1)).Take(size).ToList();
-            return new PagedList<T>(list, page, size, totalCount);
-        }
-    }
 }

+ 3 - 3
Masuit.Tools.Core/Masuit.Tools.Core.csproj

@@ -18,10 +18,10 @@ github:https://github.com/ldqk/Masuit.Tools
         <UserSecretsId>830c282f-f7c1-42be-8651-4cd06ac8e73f</UserSecretsId>
         <RepositoryType>Github</RepositoryType>
         <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-        <Version>2.4.4.6</Version>
-        <FileVersion>2.4.4.6</FileVersion>
+        <Version>2.4.4.7</Version>
+        <FileVersion>2.4.4.7</FileVersion>
         <Company>masuit.com</Company>
-        <AssemblyVersion>2.4.4.6</AssemblyVersion>
+        <AssemblyVersion>2.4.4.7</AssemblyVersion>
         <Authors>懒得勤快X</Authors>
         <RepositoryUrl>https://github.com/ldqk/Masuit.Tools</RepositoryUrl>
         <EmbedUntrackedSources>true</EmbedUntrackedSources>

+ 50 - 0
Masuit.Tools.Core/Models/IQueryableExt.cs

@@ -1,5 +1,6 @@
 using Microsoft.EntityFrameworkCore;
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
 
@@ -31,5 +32,54 @@ namespace Masuit.Tools.Models
             var list = await query.Skip(size * (page - 1)).Take(size).ToListAsync();
             return new PagedList<T>(list, page, size, totalCount);
         }
+        /// <summary>
+        /// 生成分页集合
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="query"></param>
+        /// <param name="page">当前页</param>
+        /// <param name="size">页大小</param>
+        /// <returns></returns>
+        public static PagedList<T> ToPagedList<T>(this IQueryable<T> query, int page, int size)
+        {
+            var totalCount = query.Count();
+            if (page * size > totalCount)
+            {
+                page = (int)Math.Ceiling(totalCount / (size * 1.0));
+            }
+
+            if (page <= 0)
+            {
+                page = 1;
+            }
+
+            var list = query.Skip(size * (page - 1)).Take(size).ToList();
+            return new PagedList<T>(list, page, size, totalCount);
+        }
+
+        /// <summary>
+        /// 生成分页集合
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="query"></param>
+        /// <param name="page">当前页</param>
+        /// <param name="size">页大小</param>
+        /// <returns></returns>
+        public static PagedList<T> ToPagedList<T>(this IEnumerable<T> query, int page, int size)
+        {
+            var totalCount = query.Count();
+            if (page * size > totalCount)
+            {
+                page = (int)Math.Ceiling(totalCount / (size * 1.0));
+            }
+
+            if (page <= 0)
+            {
+                page = 1;
+            }
+
+            var list = query.Skip(size * (page - 1)).Take(size).ToList();
+            return new PagedList<T>(list, page, size, totalCount);
+        }
     }
 }

BIN
Masuit.Tools.Net45/Properties/AssemblyInfo.cs


+ 1 - 1
Masuit.Tools.Net45/package.nuspec

@@ -4,7 +4,7 @@
     <!--*-->
     <id>Masuit.Tools.Net45</id>
     <!--*-->
-    <version>2.4.4.6</version>
+    <version>2.4.4.7</version>
     <title>Masuit.Tools</title>
     <!--*-->
     <authors>懒得勤快</authors>

BIN
Masuit.Tools/Properties/AssemblyInfo.cs


+ 1 - 1
Masuit.Tools/package.nuspec

@@ -4,7 +4,7 @@
     <!--*-->
     <id>Masuit.Tools.Net</id>
     <!--*-->
-    <version>2.4.4.6</version>
+    <version>2.4.4.7</version>
     <title>Masuit.Tools</title>
     <!--*-->
     <authors>懒得勤快</authors>