From 31b5a1f5b7e2c2209119ba6df6e1a67098b0f562 Mon Sep 17 00:00:00 2001 From: ky_xiaz <574434302@qq.com> Date: Tue, 18 May 2021 09:32:25 +0800 Subject: [PATCH] Update MailHelper --- Api/Ewide.Core/Ewide.Core.xml | 43 ++++++++++++++++ Api/Ewide.Core/Util/MailHelper.cs | 54 ++++++++++++++++++-- Api/Ewide.Core/Util/RSAHandler.cs | 10 ++-- Api/Ewide.Core/Util/XmlSerializerUtil.cs | 1 - Api/Ewide.Core/applicationconfig.json | 8 ++- Api/Ewide.Web.Core/Service/DBqueryService.cs | 2 +- 6 files changed, 105 insertions(+), 13 deletions(-) diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml index f66618b..3f4a01c 100644 --- a/Api/Ewide.Core/Ewide.Core.xml +++ b/Api/Ewide.Core/Ewide.Core.xml @@ -680,6 +680,16 @@ 字典类型表 + + + 父Id + + + + + 父Ids + + 名称 @@ -2202,6 +2212,11 @@ 检测数据不存在 + + + 网络错误 + + 文件存储位置 @@ -3989,6 +4004,11 @@ 状态(字典 0正常 1停用 2删除) + + + 父id + + 名称 @@ -4157,6 +4177,22 @@ + + + 创建Pids格式 + 如果pid是0顶级节点,pids就是 [0]; + 如果pid不是顶级节点,pids就是 pid菜单的 pids + [pid] + , + + + + + + + 根据节点Id获取所有子节点Id集合,包含自己 + + + + 附属机构和职位参数 @@ -7030,6 +7066,13 @@ + + + 邮箱类 + + 发送的信息 + 用户的地址 + XML 文件转成PEM 公钥格式 diff --git a/Api/Ewide.Core/Util/MailHelper.cs b/Api/Ewide.Core/Util/MailHelper.cs index 731d48c..6830521 100644 --- a/Api/Ewide.Core/Util/MailHelper.cs +++ b/Api/Ewide.Core/Util/MailHelper.cs @@ -1,15 +1,59 @@ -using System.Net.Mail; +using Furion; +using Furion.FriendlyException; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Options; +using System; +using System.Net.Mail; +using System.Text; namespace Ewide.Core.Util { public class MailHelper { + public string Message { set; get; } + public string UserMailAddress { set; get; } + /// + /// 邮箱类 + /// + /// 发送的信息 + /// 用户的地址 + public MailHelper(string message, string userMailAddress) + { + //MailHelper mail = new MailHelper("第一次发送邮箱测试", "591410538@qq.com"); + //mail.Send(); + Message = message; + UserMailAddress = userMailAddress; + } public void Send() { - MailMessage msg = null; - //smtpClient.Credentials = new System.Net.NetworkCredential(mail.from.Send_Address.Address, mail.from.password);//设置发件人身份的票据 - //smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; - //smtpClient.Host = "smtp." + mail.from.Send_Address.Host; + string account = App.Configuration["Mail:Account"]; + string passWord = App.Configuration["Mail:PassWord"]; + //var options = Options.Create(options: new MemoryCacheOptions()); + //IMemoryCache cache = new MemoryCache(options); + SmtpClient smtpClient = new SmtpClient(); + smtpClient.EnableSsl = true; + smtpClient.UseDefaultCredentials = false; + smtpClient.Host = App.Configuration["Mail:Host"]; + smtpClient.Credentials = new System.Net.NetworkCredential(account, passWord); + smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; + + MailMessage mailMessage = new MailMessage(); + MailAddress fromAddr = new MailAddress(account); + mailMessage.From = fromAddr; + mailMessage.To.Add(UserMailAddress); + mailMessage.Subject = App.Configuration["Mail:Subject"]; + mailMessage.BodyEncoding = Encoding.UTF8; + mailMessage.IsBodyHtml = true; + mailMessage.Priority = MailPriority.Low; + mailMessage.Body = Message; + try + { + smtpClient.Send(mailMessage); + } + catch + { + throw Oops.Oh(ErrorCode.xg1100); + } } } } diff --git a/Api/Ewide.Core/Util/RSAHandler.cs b/Api/Ewide.Core/Util/RSAHandler.cs index 155b8af..2bf2c78 100644 --- a/Api/Ewide.Core/Util/RSAHandler.cs +++ b/Api/Ewide.Core/Util/RSAHandler.cs @@ -43,13 +43,15 @@ namespace Ewide.Core.Util /// public static string Format(string key, int type) { - string result = string.Empty; int length = key.Length / 64; for (int i = 0; i < length; i++) + string result = string.Empty; + int length = key.Length / 64; + for (int i = 0; i < length; i++) { int start = i * 64; result = result + key.Substring(start, 64) + "\r\n"; } - - result = result + key.Substring(length * 64); if (type == 1) + result = result + key.Substring(length * 64); + if (type == 1) { result = result.Insert(0, "-----BEGIN PUBLIC KEY-----\r\n"); result += "\r\n-----END PUBLIC KEY-----"; @@ -68,7 +70,6 @@ namespace Ewide.Core.Util /// public static string RSAEncrypt(string content) { - //string publickey = @"tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=AQAB"; string publickey = App.Configuration["RSA:publickey"]; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] cipherbytes; @@ -84,7 +85,6 @@ namespace Ewide.Core.Util /// public static string RSADecrypt(string content) { - //string privatekey = @"tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=AQAB

7yKLJO9dobe7pNW3ob+Vse8kvlA+PObDrZNqFxUTLyXoAeHDnwz3BjJ2EVUPNJHV5F1/KPLTvADIjDrdB1qcbw==

w9ZK0SHBddtE91skFFS72YDmxzmXumSuUyREStVul9ke0oU2HjcZA915bmR0Zrh1RzO3y1w9zXVn+GdZGjyd6w==ncA67E2fhcwv0+hMcD5zYOLyaT2EISbWFQ43ISz879BgwcUOCEFEP+lP69Uh57sAz9pBxWCS/uXBZoh6QJysrw==vbC8F4YS1g3l55Koh+jra+qnnyHyDeGn2XCvlazWys7MRC40FWBZIp1MGdnDxhu1vZoi1SAr3O90HfA9JmTAsQ==00v2vMCcgXy78eMby7R6zfZzacVnVFO2WeyxYF7pjrXYYP+C4JSJkWpy6JGLWbgZrK8HAuRguJmdRi8K2KiYWg==rV3nb9nmwQDMGMrI2GyN30uivygfFj0TdgK8Tb1aqPzu1yRT46M4yXmuhkTiW7nxp+iANGssIx5+3Ch4gRj+r6BgBPldWNErK95a2v2Ae1+EzfVf21ybguBYeUVnV9c8qwoodZSVOajZapOgoS6s5TEOxHWRcF22AiFuaD1Tl90=
"; string privatekey = App.Configuration["RSA:privatekey"]; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] cipherbytes; diff --git a/Api/Ewide.Core/Util/XmlSerializerUtil.cs b/Api/Ewide.Core/Util/XmlSerializerUtil.cs index 44af1fc..e12b8bf 100644 --- a/Api/Ewide.Core/Util/XmlSerializerUtil.cs +++ b/Api/Ewide.Core/Util/XmlSerializerUtil.cs @@ -90,7 +90,6 @@ namespace Ewide.Core.Util string fullName = string.Join('.', currentAssemblyName, name); return Assembly.Load(currentAssemblyName).CreateInstance(fullName); } - /// /// 写入XML到磁盘 /// diff --git a/Api/Ewide.Core/applicationconfig.json b/Api/Ewide.Core/applicationconfig.json index b4c45c0..97ad50d 100644 --- a/Api/Ewide.Core/applicationconfig.json +++ b/Api/Ewide.Core/applicationconfig.json @@ -25,12 +25,18 @@ "WriteXmlPath": { "SeedData": "SeedDataXml", "DataBase": "DataBaseXml", - "ReadSelect": "SeedData" // SeedData 和 DataBase 两个中间选 + "ReadSelect": "DataBase" // SeedData 和 DataBase 两个中间选 }, "RSA": { "publickey": "tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=AQAB", "privatekey": "tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=AQAB

7yKLJO9dobe7pNW3ob+Vse8kvlA+PObDrZNqFxUTLyXoAeHDnwz3BjJ2EVUPNJHV5F1/KPLTvADIjDrdB1qcbw==

w9ZK0SHBddtE91skFFS72YDmxzmXumSuUyREStVul9ke0oU2HjcZA915bmR0Zrh1RzO3y1w9zXVn+GdZGjyd6w==ncA67E2fhcwv0+hMcD5zYOLyaT2EISbWFQ43ISz879BgwcUOCEFEP+lP69Uh57sAz9pBxWCS/uXBZoh6QJysrw==vbC8F4YS1g3l55Koh+jra+qnnyHyDeGn2XCvlazWys7MRC40FWBZIp1MGdnDxhu1vZoi1SAr3O90HfA9JmTAsQ==00v2vMCcgXy78eMby7R6zfZzacVnVFO2WeyxYF7pjrXYYP+C4JSJkWpy6JGLWbgZrK8HAuRguJmdRi8K2KiYWg==rV3nb9nmwQDMGMrI2GyN30uivygfFj0TdgK8Tb1aqPzu1yRT46M4yXmuhkTiW7nxp+iANGssIx5+3Ch4gRj+r6BgBPldWNErK95a2v2Ae1+EzfVf21ybguBYeUVnV9c8qwoodZSVOajZapOgoS6s5TEOxHWRcF22AiFuaD1Tl90=
" }, + "Mail": { + "Account": "983235253@qq.com", + "PassWord": "izknskjprlusbehf", //qq邮箱授权码 + "Subject": "宽易邮箱发送测试", + "Host": "smtp.qq.com" //邮箱服务器地址 + }, "Cache": { "CacheType": "MemoryCache", // RedisCache "RedisConnectionString": "127.0.0.1:6379,password=,defaultDatabase=2" diff --git a/Api/Ewide.Web.Core/Service/DBqueryService.cs b/Api/Ewide.Web.Core/Service/DBqueryService.cs index 19c255d..0b6815d 100644 --- a/Api/Ewide.Web.Core/Service/DBqueryService.cs +++ b/Api/Ewide.Web.Core/Service/DBqueryService.cs @@ -32,7 +32,7 @@ namespace Ewide.Web.Core.Service { #if DEBUG XmlSerializerUtil xmlHandler = new XmlSerializerUtil(); - xmlHandler.WriteDataSeed(); + //xmlHandler.WriteDataSeed(); //拿到数据保存到 XML文件 Dictionary dicDataBase = await GetDataBase(); foreach (KeyValuePair item in dicDataBase)