邮件修改部署
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using MailKit;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using MailKit;
|
||||
using MailKit.Security;
|
||||
using MimeKit;
|
||||
|
||||
@@ -8,7 +9,7 @@ namespace IRaCIS.Core.Application.Helper;
|
||||
public static class SendEmailHelper
|
||||
{
|
||||
|
||||
public static async Task SendEmailAsync(MimeMessage messageToSend, EventHandler<MessageSentEventArgs>? messageSentSuccess = null)
|
||||
public static async Task SendEmailAsync(MimeMessage messageToSend, SystemEmailSendConfig _systemEmailConfig, EventHandler<MessageSentEventArgs>? messageSentSuccess = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -22,9 +23,13 @@ public static class SendEmailHelper
|
||||
|
||||
smtp.ServerCertificateValidationCallback = (s, c, h, e) => true;
|
||||
|
||||
await smtp.ConnectAsync("smtp.qq.com", 465, SecureSocketOptions.SslOnConnect);
|
||||
//await smtp.ConnectAsync("smtp.qq.com", 465, SecureSocketOptions.SslOnConnect);
|
||||
|
||||
await smtp.AuthenticateAsync("zhou941003@qq.com", "sqfhlpfdvnexbcab");
|
||||
//await smtp.AuthenticateAsync("zhou941003@qq.com", "sqfhlpfdvnexbcab");
|
||||
|
||||
await smtp.ConnectAsync(_systemEmailConfig.Host, _systemEmailConfig.Port, SecureSocketOptions.Auto);
|
||||
|
||||
await smtp.AuthenticateAsync(_systemEmailConfig.FromEmail, _systemEmailConfig.AuthorizationCode);
|
||||
|
||||
await smtp.SendAsync(messageToSend);
|
||||
|
||||
@@ -118,14 +123,14 @@ public static class SendEmailHelper
|
||||
|
||||
public class SMTPEmailConfig
|
||||
{
|
||||
public int Port { get; set; } = 465;
|
||||
public int Port { get; set; }
|
||||
|
||||
public string Host { get; set; } = "smtp.163.com";
|
||||
public string Host { get; set; }
|
||||
|
||||
|
||||
public string UserName { get; set; } = "iracis_grr@163.com";
|
||||
public string UserName { get; set; }
|
||||
|
||||
public string AuthorizationCode { get; set; } = "XLWVQKZAEKLDWOAH";
|
||||
public string AuthorizationCode { get; set; }
|
||||
|
||||
|
||||
//邮件HtmlBody
|
||||
@@ -134,7 +139,7 @@ public class SMTPEmailConfig
|
||||
|
||||
|
||||
//发
|
||||
public MailboxAddress FromEmailAddress { get; set; } = new MailboxAddress("GRR", "iracis_grr@163.com");
|
||||
public MailboxAddress FromEmailAddress { get; set; }
|
||||
|
||||
//收
|
||||
public List<MailboxAddress> ToMailAddressList { get; set; } = new List<MailboxAddress>();
|
||||
|
||||
@@ -7,6 +7,7 @@ using IRaCIS.Core.Application.Auth;
|
||||
using AutoMapper;
|
||||
using IRaCIS.Application.Contracts;
|
||||
using Nito.AsyncEx;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
@@ -21,7 +22,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl);
|
||||
|
||||
Task AdminResetPwdSendEmailAsync(Guid userId,string pwdNotMd5="123456");
|
||||
Task AdminResetPwdSendEmailAsync(Guid userId, string pwdNotMd5 = "123456");
|
||||
|
||||
Task SiteSurveyUserJoinEmail(Guid trialId, Guid userId, string baseUrl, string rootUrl);
|
||||
|
||||
@@ -52,6 +53,8 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
private readonly AsyncLock _mutex = new AsyncLock();
|
||||
|
||||
private readonly SystemEmailSendConfig _systemEmailConfig;
|
||||
|
||||
|
||||
|
||||
public MailVerificationService(IRepository<VerificationCode> verificationCodeRepository,
|
||||
@@ -62,8 +65,9 @@ namespace IRaCIS.Application.Services
|
||||
IRepository<Trial> trialRepository,
|
||||
IRepository<UserType> userTypeRepository,
|
||||
IRepository<Doctor> doctorTypeRepository,
|
||||
IMapper mapper)
|
||||
IMapper mapper, IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig)
|
||||
{
|
||||
_systemEmailConfig = systemEmailConfig.CurrentValue;
|
||||
_verificationCodeRepository = verificationCodeRepository;
|
||||
_systemBasicDatarepository = systemBasicDatarepository;
|
||||
|
||||
@@ -85,14 +89,15 @@ namespace IRaCIS.Application.Services
|
||||
{
|
||||
|
||||
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(userName, emailAddress));
|
||||
//主题
|
||||
messageToSend.Subject = "[来自展影IRC] 关于重置邮箱的提醒";
|
||||
|
||||
|
||||
var builder = new BodyBuilder();
|
||||
|
||||
|
||||
@@ -136,7 +141,7 @@ namespace IRaCIS.Application.Services
|
||||
};
|
||||
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig, sucessHandle);
|
||||
|
||||
|
||||
}
|
||||
@@ -148,7 +153,7 @@ namespace IRaCIS.Application.Services
|
||||
{
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, emailAddress));
|
||||
//主题
|
||||
@@ -198,7 +203,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig, sucessHandle);
|
||||
}
|
||||
|
||||
//中心调研 登陆
|
||||
@@ -208,7 +213,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, emailAddress));
|
||||
//主题
|
||||
@@ -259,7 +264,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig,sucessHandle);
|
||||
|
||||
|
||||
}
|
||||
@@ -275,7 +280,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(sysUserInfo.FullName, sysUserInfo.EMail));
|
||||
//主题
|
||||
@@ -299,7 +304,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
|
||||
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}";
|
||||
|
||||
using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
|
||||
{
|
||||
@@ -319,17 +324,17 @@ namespace IRaCIS.Application.Services
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend,_systemEmailConfig);
|
||||
}
|
||||
|
||||
//管理员重置密码发送邮件
|
||||
public async Task AdminResetPwdSendEmailAsync(Guid userId, string pwdNotMd5= "123456")
|
||||
public async Task AdminResetPwdSendEmailAsync(Guid userId, string pwdNotMd5 = "123456")
|
||||
{
|
||||
var sysUserInfo = (await _userRepository.Where(t => t.Id == userId).Include(t => t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(sysUserInfo.FullName, sysUserInfo.EMail));
|
||||
//主题
|
||||
@@ -364,7 +369,7 @@ namespace IRaCIS.Application.Services
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||
}
|
||||
|
||||
|
||||
@@ -377,11 +382,11 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(sysUserInfo.FullName, sysUserInfo.EMail));
|
||||
//主题
|
||||
messageToSend.Subject = $"[来自展影IRC] [{ trialInfo.ResearchProgramNo}]邀请信";
|
||||
messageToSend.Subject = $"[来自展影IRC] [{trialInfo.ResearchProgramNo}]邀请信";
|
||||
|
||||
|
||||
|
||||
@@ -410,7 +415,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
|
||||
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}";
|
||||
|
||||
builder.HtmlBody = string.Format(templateInfo,
|
||||
sysUserInfo.FullName,
|
||||
@@ -425,7 +430,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, null);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig,null);
|
||||
|
||||
|
||||
}
|
||||
@@ -440,11 +445,11 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, sysUserInfo.EMail));
|
||||
//主题
|
||||
messageToSend.Subject = $"[来自展影IRC] [{ trialInfo.ResearchProgramNo}]邀请信";
|
||||
messageToSend.Subject = $"[来自展影IRC] [{trialInfo.ResearchProgramNo}]邀请信";
|
||||
|
||||
|
||||
var builder = new BodyBuilder();
|
||||
@@ -471,7 +476,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token;
|
||||
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}";
|
||||
|
||||
builder.HtmlBody = string.Format(templateInfo,
|
||||
sysUserInfo.FullName,
|
||||
@@ -489,7 +494,7 @@ namespace IRaCIS.Application.Services
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, null);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig, null);
|
||||
|
||||
}
|
||||
|
||||
@@ -526,7 +531,7 @@ namespace IRaCIS.Application.Services
|
||||
var savedUser = await _userRepository.AddAsync(saveItem);
|
||||
|
||||
//下面获取Token 需要这部分信息
|
||||
sysUserInfo =savedUser.Clone();
|
||||
sysUserInfo = savedUser.Clone();
|
||||
|
||||
sysUserInfo.UserTypeRole = userType;
|
||||
|
||||
@@ -544,11 +549,11 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "zhou941003@qq.com"));
|
||||
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(doctor.FullName, doctor.EMail));
|
||||
//主题
|
||||
messageToSend.Subject = $"[来自展影IRC] [{ trialInfo.ResearchProgramNo}]邀请信";
|
||||
messageToSend.Subject = $"[来自展影IRC] [{trialInfo.ResearchProgramNo}]邀请信";
|
||||
|
||||
|
||||
var builder = new BodyBuilder();
|
||||
@@ -582,7 +587,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
|
||||
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
|
||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}";
|
||||
|
||||
builder.HtmlBody = string.Format(templateInfo,
|
||||
sysUserInfo.FullName,
|
||||
@@ -597,7 +602,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, null);
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig, null);
|
||||
|
||||
return sysUserInfo.Id;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using BeetleX.BNR;
|
||||
using IRaCIS.Core.Application.Service;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
|
||||
@@ -17,8 +19,21 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
//private readonly IDistributedCache _cache;
|
||||
|
||||
public TestService(IRepository<Dictionary> dicRepository, IRepository<Trial> trialRepository/*, IDistributedCache cache*/)
|
||||
private readonly IOptionsMonitor<SystemEmailSendConfig> _systemEmailConfig;
|
||||
|
||||
private readonly IOptionsMonitor<ServiceVerifyConfigOption> _basicConfig;
|
||||
|
||||
|
||||
|
||||
public TestService(IRepository<Dictionary> dicRepository, IRepository<Trial> trialRepository/*, IDistributedCache cache*/
|
||||
|
||||
, IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig, IOptionsMonitor<ServiceVerifyConfigOption> basicConfig)
|
||||
{
|
||||
|
||||
|
||||
_systemEmailConfig = systemEmailConfig;
|
||||
_basicConfig = basicConfig;
|
||||
|
||||
_dicRepository = dicRepository;
|
||||
_trialRepository = trialRepository;
|
||||
//_cache = cache;
|
||||
@@ -107,16 +122,20 @@ namespace IRaCIS.Application.Services
|
||||
return findStr;
|
||||
}
|
||||
|
||||
|
||||
public string GetEnvironmentName( [FromServices] IWebHostEnvironment env)
|
||||
[AllowAnonymous]
|
||||
public async Task<object> GetEnvironmentName( [FromServices] IWebHostEnvironment env)
|
||||
{
|
||||
|
||||
return env.EnvironmentName;
|
||||
|
||||
//update DicomInstance set Path = '/IRaCISData/TrialData/' + cast(DicomInstance.TrialId as varchar) + '/' + DicomInstance.SiteId + '/' + DicomInstance.SubjectId + '/' + DicomInstance.SubjectVisitId + '/Dicom/' + DicomInstance.StudyId + '/' + DicomInstance.Id + '.dcm'
|
||||
|
||||
|
||||
//await _repository.BatchUpdateAsync<DicomInstance>(u=>u.Id!=Guid.Empty,t => new DicomInstance() { Path = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{t.TrialId}/{t.SiteId}/{t.SubjectId}/{t.SubjectVisitId}/{StaticData.Folder.DicomFolder}/{t.StudyId}/{t.Id}.dcm" });
|
||||
//await _repository.BatchUpdateAsync<DicomInstance>(u => u.Path.Contains(".dcm"), t => new DicomInstance() { Path = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{t.TrialId}/{t.SiteId}/{t.SubjectId}/{t.SubjectVisitId}/{StaticData.Folder.DicomFolder}/{t.StudyId}/{t.Id}.dcm" });
|
||||
|
||||
//await _repository.BatchUpdateAsync<DicomInstance>(u => !u.Path.Contains(".dcm"), t => new DicomInstance() { Path = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{t.TrialId}/{t.SiteId}/{t.SubjectId}/{t.SubjectVisitId}/{StaticData.Folder.DicomFolder}/{t.StudyId}/{t.Id}" });
|
||||
|
||||
|
||||
return new { env.EnvironmentName , EMailConfig= _systemEmailConfig.CurrentValue,BasicConfig= _basicConfig.CurrentValue} ;
|
||||
|
||||
|
||||
// Load a document.
|
||||
@@ -195,9 +214,9 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
|
||||
|
||||
public string PostData(List<TestModel> testModelList)
|
||||
public string PostData(TestModel testModelList)
|
||||
{
|
||||
return string.Join(",", testModelList);
|
||||
return String.Empty ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,6 +227,8 @@ namespace IRaCIS.Application.Services
|
||||
public string Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public DateTime? Time { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user