Update MailHelper
This commit is contained in:
@@ -680,6 +680,16 @@
|
|||||||
字典类型表
|
字典类型表
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:Ewide.Core.SysDictType.Pid">
|
||||||
|
<summary>
|
||||||
|
父Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ewide.Core.SysDictType.Pids">
|
||||||
|
<summary>
|
||||||
|
父Ids
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:Ewide.Core.SysDictType.Name">
|
<member name="P:Ewide.Core.SysDictType.Name">
|
||||||
<summary>
|
<summary>
|
||||||
名称
|
名称
|
||||||
@@ -2202,6 +2212,11 @@
|
|||||||
检测数据不存在
|
检测数据不存在
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:Ewide.Core.ErrorCode.xg1100">
|
||||||
|
<summary>
|
||||||
|
网络错误
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:Ewide.Core.FileLocation">
|
<member name="T:Ewide.Core.FileLocation">
|
||||||
<summary>
|
<summary>
|
||||||
文件存储位置
|
文件存储位置
|
||||||
@@ -3989,6 +4004,11 @@
|
|||||||
状态(字典 0正常 1停用 2删除)
|
状态(字典 0正常 1停用 2删除)
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:Ewide.Core.Service.AddDictTypeInput.Pid">
|
||||||
|
<summary>
|
||||||
|
父id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:Ewide.Core.Service.AddDictTypeInput.Name">
|
<member name="P:Ewide.Core.Service.AddDictTypeInput.Name">
|
||||||
<summary>
|
<summary>
|
||||||
名称
|
名称
|
||||||
@@ -4157,6 +4177,22 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Service.SysDictTypeService.CreateNewPids(System.String)">
|
||||||
|
<summary>
|
||||||
|
创建Pids格式
|
||||||
|
如果pid是0顶级节点,pids就是 [0];
|
||||||
|
如果pid不是顶级节点,pids就是 pid菜单的 pids + [pid] + ,
|
||||||
|
</summary>
|
||||||
|
<param name="pid"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Service.SysDictTypeService.GetChildIdListWithSelfById(System.String)">
|
||||||
|
<summary>
|
||||||
|
根据节点Id获取所有子节点Id集合,包含自己
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:Ewide.Core.Service.EmpExtOrgPosOutput">
|
<member name="T:Ewide.Core.Service.EmpExtOrgPosOutput">
|
||||||
<summary>
|
<summary>
|
||||||
附属机构和职位参数
|
附属机构和职位参数
|
||||||
@@ -7030,6 +7066,13 @@
|
|||||||
<param name="Milliseconds"></param>
|
<param name="Milliseconds"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.MailHelper.#ctor(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
邮箱类
|
||||||
|
</summary>
|
||||||
|
<param name="message">发送的信息</param>
|
||||||
|
<param name="userMailAddress">用户的地址</param>
|
||||||
|
</member>
|
||||||
<member name="M:Ewide.Core.Util.RSAHandler.Xml2PemPublic(System.String,System.String)">
|
<member name="M:Ewide.Core.Util.RSAHandler.Xml2PemPublic(System.String,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
XML 文件转成PEM 公钥格式
|
XML 文件转成PEM 公钥格式
|
||||||
|
|||||||
@@ -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
|
namespace Ewide.Core.Util
|
||||||
{
|
{
|
||||||
public class MailHelper
|
public class MailHelper
|
||||||
{
|
{
|
||||||
|
public string Message { set; get; }
|
||||||
|
public string UserMailAddress { set; get; }
|
||||||
|
/// <summary>
|
||||||
|
/// 邮箱类
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="message">发送的信息</param>
|
||||||
|
/// <param name="userMailAddress">用户的地址</param>
|
||||||
|
public MailHelper(string message, string userMailAddress)
|
||||||
|
{
|
||||||
|
//MailHelper mail = new MailHelper("第一次发送邮箱测试", "591410538@qq.com");
|
||||||
|
//mail.Send();
|
||||||
|
Message = message;
|
||||||
|
UserMailAddress = userMailAddress;
|
||||||
|
}
|
||||||
public void Send()
|
public void Send()
|
||||||
{
|
{
|
||||||
MailMessage msg = null;
|
string account = App.Configuration["Mail:Account"];
|
||||||
//smtpClient.Credentials = new System.Net.NetworkCredential(mail.from.Send_Address.Address, mail.from.password);//设置发件人身份的票据
|
string passWord = App.Configuration["Mail:PassWord"];
|
||||||
//smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
|
//var options = Options.Create(options: new MemoryCacheOptions());
|
||||||
//smtpClient.Host = "smtp." + mail.from.Send_Address.Host;
|
//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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,13 +43,15 @@ namespace Ewide.Core.Util
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string Format(string key, int type)
|
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;
|
int start = i * 64;
|
||||||
result = result + key.Substring(start, 64) + "\r\n";
|
result = result + key.Substring(start, 64) + "\r\n";
|
||||||
}
|
}
|
||||||
|
result = result + key.Substring(length * 64);
|
||||||
result = result + key.Substring(length * 64); if (type == 1)
|
if (type == 1)
|
||||||
{
|
{
|
||||||
result = result.Insert(0, "-----BEGIN PUBLIC KEY-----\r\n");
|
result = result.Insert(0, "-----BEGIN PUBLIC KEY-----\r\n");
|
||||||
result += "\r\n-----END PUBLIC KEY-----";
|
result += "\r\n-----END PUBLIC KEY-----";
|
||||||
@@ -68,7 +70,6 @@ namespace Ewide.Core.Util
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string RSAEncrypt(string content)
|
public static string RSAEncrypt(string content)
|
||||||
{
|
{
|
||||||
//string publickey = @"<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
|
|
||||||
string publickey = App.Configuration["RSA:publickey"];
|
string publickey = App.Configuration["RSA:publickey"];
|
||||||
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
||||||
byte[] cipherbytes;
|
byte[] cipherbytes;
|
||||||
@@ -84,7 +85,6 @@ namespace Ewide.Core.Util
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string RSADecrypt(string content)
|
public static string RSADecrypt(string content)
|
||||||
{
|
{
|
||||||
//string privatekey = @"<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent><P>7yKLJO9dobe7pNW3ob+Vse8kvlA+PObDrZNqFxUTLyXoAeHDnwz3BjJ2EVUPNJHV5F1/KPLTvADIjDrdB1qcbw==</P><Q>w9ZK0SHBddtE91skFFS72YDmxzmXumSuUyREStVul9ke0oU2HjcZA915bmR0Zrh1RzO3y1w9zXVn+GdZGjyd6w==</Q><DP>ncA67E2fhcwv0+hMcD5zYOLyaT2EISbWFQ43ISz879BgwcUOCEFEP+lP69Uh57sAz9pBxWCS/uXBZoh6QJysrw==</DP><DQ>vbC8F4YS1g3l55Koh+jra+qnnyHyDeGn2XCvlazWys7MRC40FWBZIp1MGdnDxhu1vZoi1SAr3O90HfA9JmTAsQ==</DQ><InverseQ>00v2vMCcgXy78eMby7R6zfZzacVnVFO2WeyxYF7pjrXYYP+C4JSJkWpy6JGLWbgZrK8HAuRguJmdRi8K2KiYWg==</InverseQ><D>rV3nb9nmwQDMGMrI2GyN30uivygfFj0TdgK8Tb1aqPzu1yRT46M4yXmuhkTiW7nxp+iANGssIx5+3Ch4gRj+r6BgBPldWNErK95a2v2Ae1+EzfVf21ybguBYeUVnV9c8qwoodZSVOajZapOgoS6s5TEOxHWRcF22AiFuaD1Tl90=</D></RSAKeyValue>";
|
|
||||||
string privatekey = App.Configuration["RSA:privatekey"];
|
string privatekey = App.Configuration["RSA:privatekey"];
|
||||||
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
||||||
byte[] cipherbytes;
|
byte[] cipherbytes;
|
||||||
|
|||||||
@@ -90,7 +90,6 @@ namespace Ewide.Core.Util
|
|||||||
string fullName = string.Join('.', currentAssemblyName, name);
|
string fullName = string.Join('.', currentAssemblyName, name);
|
||||||
return Assembly.Load(currentAssemblyName).CreateInstance(fullName);
|
return Assembly.Load(currentAssemblyName).CreateInstance(fullName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 写入XML到磁盘
|
/// 写入XML到磁盘
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -25,12 +25,18 @@
|
|||||||
"WriteXmlPath": {
|
"WriteXmlPath": {
|
||||||
"SeedData": "SeedDataXml",
|
"SeedData": "SeedDataXml",
|
||||||
"DataBase": "DataBaseXml",
|
"DataBase": "DataBaseXml",
|
||||||
"ReadSelect": "SeedData" // SeedData 和 DataBase 两个中间选
|
"ReadSelect": "DataBase" // SeedData 和 DataBase 两个中间选
|
||||||
},
|
},
|
||||||
"RSA": {
|
"RSA": {
|
||||||
"publickey": "<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>",
|
"publickey": "<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>",
|
||||||
"privatekey": "<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent><P>7yKLJO9dobe7pNW3ob+Vse8kvlA+PObDrZNqFxUTLyXoAeHDnwz3BjJ2EVUPNJHV5F1/KPLTvADIjDrdB1qcbw==</P><Q>w9ZK0SHBddtE91skFFS72YDmxzmXumSuUyREStVul9ke0oU2HjcZA915bmR0Zrh1RzO3y1w9zXVn+GdZGjyd6w==</Q><DP>ncA67E2fhcwv0+hMcD5zYOLyaT2EISbWFQ43ISz879BgwcUOCEFEP+lP69Uh57sAz9pBxWCS/uXBZoh6QJysrw==</DP><DQ>vbC8F4YS1g3l55Koh+jra+qnnyHyDeGn2XCvlazWys7MRC40FWBZIp1MGdnDxhu1vZoi1SAr3O90HfA9JmTAsQ==</DQ><InverseQ>00v2vMCcgXy78eMby7R6zfZzacVnVFO2WeyxYF7pjrXYYP+C4JSJkWpy6JGLWbgZrK8HAuRguJmdRi8K2KiYWg==</InverseQ><D>rV3nb9nmwQDMGMrI2GyN30uivygfFj0TdgK8Tb1aqPzu1yRT46M4yXmuhkTiW7nxp+iANGssIx5+3Ch4gRj+r6BgBPldWNErK95a2v2Ae1+EzfVf21ybguBYeUVnV9c8qwoodZSVOajZapOgoS6s5TEOxHWRcF22AiFuaD1Tl90=</D></RSAKeyValue>"
|
"privatekey": "<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent><P>7yKLJO9dobe7pNW3ob+Vse8kvlA+PObDrZNqFxUTLyXoAeHDnwz3BjJ2EVUPNJHV5F1/KPLTvADIjDrdB1qcbw==</P><Q>w9ZK0SHBddtE91skFFS72YDmxzmXumSuUyREStVul9ke0oU2HjcZA915bmR0Zrh1RzO3y1w9zXVn+GdZGjyd6w==</Q><DP>ncA67E2fhcwv0+hMcD5zYOLyaT2EISbWFQ43ISz879BgwcUOCEFEP+lP69Uh57sAz9pBxWCS/uXBZoh6QJysrw==</DP><DQ>vbC8F4YS1g3l55Koh+jra+qnnyHyDeGn2XCvlazWys7MRC40FWBZIp1MGdnDxhu1vZoi1SAr3O90HfA9JmTAsQ==</DQ><InverseQ>00v2vMCcgXy78eMby7R6zfZzacVnVFO2WeyxYF7pjrXYYP+C4JSJkWpy6JGLWbgZrK8HAuRguJmdRi8K2KiYWg==</InverseQ><D>rV3nb9nmwQDMGMrI2GyN30uivygfFj0TdgK8Tb1aqPzu1yRT46M4yXmuhkTiW7nxp+iANGssIx5+3Ch4gRj+r6BgBPldWNErK95a2v2Ae1+EzfVf21ybguBYeUVnV9c8qwoodZSVOajZapOgoS6s5TEOxHWRcF22AiFuaD1Tl90=</D></RSAKeyValue>"
|
||||||
},
|
},
|
||||||
|
"Mail": {
|
||||||
|
"Account": "983235253@qq.com",
|
||||||
|
"PassWord": "izknskjprlusbehf", //qq邮箱授权码
|
||||||
|
"Subject": "宽易邮箱发送测试",
|
||||||
|
"Host": "smtp.qq.com" //邮箱服务器地址
|
||||||
|
},
|
||||||
"Cache": {
|
"Cache": {
|
||||||
"CacheType": "MemoryCache", // RedisCache
|
"CacheType": "MemoryCache", // RedisCache
|
||||||
"RedisConnectionString": "127.0.0.1:6379,password=,defaultDatabase=2"
|
"RedisConnectionString": "127.0.0.1:6379,password=,defaultDatabase=2"
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace Ewide.Web.Core.Service
|
|||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
XmlSerializerUtil xmlHandler = new XmlSerializerUtil();
|
XmlSerializerUtil xmlHandler = new XmlSerializerUtil();
|
||||||
xmlHandler.WriteDataSeed();
|
//xmlHandler.WriteDataSeed();
|
||||||
//拿到数据保存到 XML文件
|
//拿到数据保存到 XML文件
|
||||||
Dictionary<string, object> dicDataBase = await GetDataBase();
|
Dictionary<string, object> dicDataBase = await GetDataBase();
|
||||||
foreach (KeyValuePair<string, object> item in dicDataBase)
|
foreach (KeyValuePair<string, object> item in dicDataBase)
|
||||||
|
|||||||
Reference in New Issue
Block a user