匿名邮箱修改密码

This commit is contained in:
2022-04-06 15:29:32 +08:00
parent 30f912a6a0
commit 512a4591af
6 changed files with 187 additions and 341 deletions
@@ -12,6 +12,8 @@ namespace IRaCIS.Application.Services
Task AnolymousSendEmail(string emailAddress, int verificationCode);
Task SendMailEditEmail(Guid userId, string userName, string emailAddress, int verificationCode);
Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode);
}
public class MailVerificationService : IMailVerificationService
@@ -100,19 +102,68 @@ namespace IRaCIS.Application.Services
};
using (var smtp = new MailKit.Net.Smtp.SmtpClient())
{
smtp.MessageSent += (sender, args) =>
smtp.MessageSent += (sender, args) =>
{
// args.Response
var code = verificationCode.ToString();
_ = _verificationCodeRepository.AddAsync(new VerificationCode()
{
CodeType = 0,
HasSend = true,
Code = code,
UserId = userId,
ExpirationTime = DateTime.Now.AddMinutes(3)
}).Result;
_ = _verificationCodeRepository.SaveChangesAsync().Result;
};
smtp.ServerCertificateValidationCallback = (s, c, h, e) => true;
await smtp.ConnectAsync("smtp.163.com", 25, SecureSocketOptions.StartTls);
await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH");
await smtp.SendAsync(messageToSend);
await smtp.DisconnectAsync(true);
}
}
public async Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode)
{
var messageToSend = new MimeMessage();
//发件地址
messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com"));
//收件地址
messageToSend.To.Add(new MailboxAddress(String.Empty, emailAddress));
//主题
messageToSend.Subject = "Reset Password (Verification Code)";
messageToSend.Body = new TextPart("plain")
{
Text = $@"Hey ,you are reset passwoed. The verification code is: {verificationCode}, If it is not your own operation, please ignore it!
-- GRR"
};
using (var smtp = new MailKit.Net.Smtp.SmtpClient())
{
smtp.MessageSent += (sender, args) =>
{
// args.Response
var code = verificationCode.ToString();
_= _verificationCodeRepository.AddAsync(new VerificationCode()
_ = _verificationCodeRepository.AddAsync(new VerificationCode()
{
CodeType = 0,
CodeType = Core.Domain.Share.VerifyType.Email,
HasSend = true,
Code = code,
UserId = userId,
UserId = Guid.Empty,//此时不知道用户
EmailOrPhone = emailAddress,
ExpirationTime = DateTime.Now.AddMinutes(3)
}).Result;
_= _verificationCodeRepository.SaveChangesAsync().Result;
_ = _verificationCodeRepository.SaveChangesAsync().Result;
};
@@ -125,7 +176,6 @@ namespace IRaCIS.Application.Services
await smtp.SendAsync(messageToSend);
await smtp.DisconnectAsync(true);
}
}