public StatusCodeResult EmailEvent([FromBody] Object json) { try { //converting json to object var emailEvent = new EmailEvent(json.ToString()); //Validate XML var xmlResponse = XsdValidation.XmlObjectValidation(emailEvent); if (xmlResponse != null) { using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { var addUserBody = Encoding.UTF8.GetBytes(xmlResponse); var properties = channel.CreateBasicProperties(); properties.Headers = new Dictionary <string, object>(); properties.Headers.Add("eventType", "frontend.email_event"); channel.BasicPublish(exchange: "events.exchange", routingKey: "", basicProperties: properties, body: addUserBody ); } } return(StatusCode(201)); } catch (Exception ex) { Sender.SendErrorMessage(ex); return(StatusCode(500)); } }
public IActionResult ForgetPasswordViaEmail([FromBody] ForgetEmailReq forgetEmail) { try { if (!ValidateHelper.IsEmailFormat(forgetEmail.Email)) { return(Json(new JsonResultModel(ReturnCode.ParameterError, "Email format is not correct."))); } var reply = Client.ForgetPasswordViaEmail(forgetEmail); //发送邮件 string emailMessage; bool send = EmailEvent.ForgotPasswordEmail(forgetEmail.Email, reply.Secrect, out emailMessage); if (!send) { return(Json(new JsonResultModel(ReturnCode.MessageError, $"Email send failed: {emailMessage}"))); } return(Json(new JsonResultModel(ReturnCode.Success, "Retrieve the password from email successful.", reply))); } catch (RpcException ex) { return(Json(new JsonResultModel(ReturnCode.SubmitError, ex.Status.Detail))); } }
public async Task <bool> ForgotPassword(ForgotPasswordViewModel forgotPasswordViewModel) { var forgotPasswordRequest = new ForgotPasswordRequest(forgotPasswordViewModel.EmailAddress); var getUserByEmailRequest = new GetUserByEmailRequest { EmailAddress = forgotPasswordViewModel.EmailAddress }; var clientInfo = UserAgentParser.Extract(_userAgent); var userResponse = await _bus.RequestAsync(getUserByEmailRequest); var name = Helpers.GetUserName(userResponse.User); var forgotPasswordResponse = await _bus.RequestAsync(forgotPasswordRequest); var actionurl = $"{_baseUrl}/Account/ChangePassword/{forgotPasswordResponse.Secret}"; var emailTemplateRequest = new EmailTemplateRequest(EmailType.ForgotPassword); var response = await _bus.RequestAsync(emailTemplateRequest); var template = TemplateContentBuilder.Build(response.Template, TemplateContentBuilder.CreateForgotPasswordTemplateContent(name, actionurl, clientInfo.OperatingSystem, clientInfo.BrowserName)); var email = new EmailEvent(new EmailAddress("noreply", "*****@*****.**"), new EmailAddress(name, forgotPasswordViewModel.EmailAddress), "Wachtwoord vergeten ikdoneer.nu", template, true); await _bus.PublishAsync(email); return(true); }
public IActionResult ActivateNewUser([FromQuery] ForgetEmailReq emailReq) { try { if (!ValidateHelper.IsEmailFormat(emailReq.Email)) { return(Json(new JsonResultModel(ReturnCode.ParameterError, "Email format is not correct."))); } var activaeFactor = Client.ActivateNewUser(emailReq); //发送邮件 string emailMessage; bool send = EmailEvent.RegisterEmail(emailReq.Email, activaeFactor.UserId, activaeFactor.Code, out emailMessage); if (!send) { return(Json(new JsonResultModel(ReturnCode.MessageError, $"Email send failed: {emailMessage}"))); } return(Json(new JsonResultModel(ReturnCode.Success, "User active email send successful."))); } catch (RpcException) { return(Json(new JsonResultModel(ReturnCode.SubmitError, "Activate link is expired."))); } }
//[ProducesResponseType(typeof(UserReply), 200)] public IActionResult Signup([FromBody] RegisterReq register) { try { if (!ValidateHelper.IsEmailFormat(register.Email)) { return(Json(new JsonResultModel(ReturnCode.ParameterError, "Email format is not correct."))); } if (register.Password == "") { return(Json(new JsonResultModel(ReturnCode.ParameterError, "Password should not blank."))); } if (register.DeviceId == "") { return(Json(new JsonResultModel(ReturnCode.ParameterError, "Device id should not blank."))); } if (IsEnableInviteCode()) { register.EnableCode = true; if (register.InviteCode == "") { return(Json(new JsonResultModel(ReturnCode.ParameterError, "Miss invite code parameter cannot complete register."))); } } var reply = Client.Signup(register); JObject data = new JObject(); data["Id"] = reply.Id; data["Email"] = reply.Email; data["Activated"] = reply.Activated.ToString(); data["RegistIp"] = reply.RegistIp; data["DeviceId"] = reply.DeviceId; var factor = FactorClient.QueryFactor(new FactorReq() { UserId = reply.Id, Type = FactorType.EmailAuthType }); //发送邮件 string emailMessage; bool send = EmailEvent.RegisterEmail(reply.Email, reply.Id, factor.Code, out emailMessage); if (!send) { return(Json(new JsonResultModel(ReturnCode.MessageError, $"Email send failed: {emailMessage}"))); } return(Json(new JsonResultModel(ReturnCode.Success, "User register successful.", reply))); } catch (RpcException ex) { return(Json(new JsonResultModel(ReturnCode.SubmitError, ex.Status.Detail))); } }
private async Task SendActivationTokenEmail(string userName, string emailAddress, string activationToken) { var actionurl = $"{_baseUrl}/Account/ActivateAccount?Token={activationToken}"; var emailTemplateRequest = new EmailTemplateRequest(EmailType.ConfirmAccount); var response = await _bus.RequestAsync(emailTemplateRequest); var template = TemplateContentBuilder.Build(response.Template, TemplateContentBuilder.CreateConfirmAccountTemplateContent(userName, actionurl)); var email = new EmailEvent(new EmailAddress("noreply", "*****@*****.**"), new EmailAddress(userName, emailAddress), "Account activatie ikdoneer.nu", template, true); await _bus.PublishAsync(email); }
public EmailTemplate EmailTemplateGet(EmailEvent emailEvent) { using (var conn = DbHelper.GetDBConnection()) { EmailTemplate retVal; try { var para = new DynamicParameters(); para.Add("@FdpEmailTemplateId", (int)emailEvent, DbType.Int32); retVal = conn.Query<EmailTemplate>("dbo.Fdp_EmailTemplate_Get", para, commandType: CommandType.StoredProcedure).FirstOrDefault(); } catch (Exception ex) { Log.Error(ex); throw; } return retVal; } }
public EmailTemplate EmailTemplateGet(EmailEvent emailEvent) { using (var conn = DbHelper.GetDBConnection()) { EmailTemplate retVal; try { var para = new DynamicParameters(); para.Add("@FdpEmailTemplateId", (int)emailEvent, DbType.Int32); retVal = conn.Query <EmailTemplate>("dbo.Fdp_EmailTemplate_Get", para, commandType: CommandType.StoredProcedure).FirstOrDefault(); } catch (Exception ex) { Log.Error(ex); throw; } return(retVal); } }
public async Task SendTest() { // Arrange var smtpClientMock = new Mock <SmtpClient>(); smtpClientMock.Setup(m => m.DisconnectAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(true)); smtpClientMock.Setup(m => m.SendAsync(It.IsAny <MimeMessage>(), It.IsAny <CancellationToken>(), It.IsAny <ITransferProgress>())).Returns(Task.FromResult(true)); var mailboxTestTo = new EmailAddress("TestRecipient", "*****@*****.**"); var mailboxTestFrom = new EmailAddress("TestSender", "*****@*****.**"); var subjectTest = "Test Subject"; var contentTest = "Test Content"; var emailMessage = new EmailEvent(mailboxTestFrom, mailboxTestTo, subjectTest, contentTest, true); var emailService = new EmailEventHandler(smtpClientMock.Object); // Act await emailService.ConsumeAsync(emailMessage); // Assert smtpClientMock.Verify(m => m.DisconnectAsync(It.Is <bool>(p => true), It.IsAny <CancellationToken>()), Times.Once); smtpClientMock.Verify(m => m.SendAsync(It.Is <MimeMessage>(p => p.Subject == subjectTest && p.HtmlBody == contentTest && p.To[0].Name == mailboxTestTo.Name && p.From[0].Name == mailboxTestFrom.Name), It.IsAny <CancellationToken>(), It.IsAny <ITransferProgress>()), Times.Once); }
public EmailTemplate GetEmailTemplate(EmailEvent forEmailEvent) { return(_templateData.EmailTemplateGet(forEmailEvent)); }
public EmailTemplate GetEmailTemplate(EmailEvent forEmailEvent) { return _templateData.EmailTemplateGet(forEmailEvent); }
public void SendEmailThread() { string emailMessage = ""; bool send = EmailEvent.RegisterEmail("*****@*****.**", 38, "32425678", out emailMessage); }